Dans les applications Web modernes, la fonction de chat en temps réel devient progressivement un outil important pour l'interaction des utilisateurs. Qu'il s'agisse de plateformes sociales, de service client en ligne ou d'interaction de diffusion en direct, la communication en temps réel a apporté d'énormes améliorations à l'expérience utilisateur. Dans le même temps, les systèmes de devises virtuels, en tant que mécanismes d'incitation et méthodes de paiement, sont de plus en plus intégrés dans ces applications. Cet article combinera le langage PHP et l'extension Swoole pour expliquer en détail le chemin d'implémentation complet du développement de chat en temps réel à la recharge des utilisateurs et à la gestion des devises virtuelles.
La technologie la plus principale pour implémenter le chat en temps réel est WebSocket, qui prend en charge la communication bidirectionnelle entre les serveurs et les clients. Dans PHP, Swoole fournit des capacités de service WebSocket haute performance, qui peuvent facilement créer un système de chat stable.
Tout d'abord, installez Swoole à l'aide du compositeur:
composer require swoole/swoole-src
Ensuite, créez un serveur WebSocket et écoutez la connexion de l'utilisateur, les messages et la déconnexion des événements:
$server = new swoole_websocket_server("0.0.0.0", 9501);
$server->on('open', function(swoole_websocket_server $server, $request) {
echo "server: handshake success with fd {$request->fd}\n";
});
$server->on('message', function(swoole_websocket_server $server, $frame) {
echo "receive from {$frame->fd}:{$frame->data}, opcode:{$frame->opcode}, fin:{$frame->finish}\n";
$server->push($frame->fd, "this is server");
});
$server->on('close', function($ser, $fd) {
echo "client {$fd} closed\n";
});
$server->start();
Dans la page frontale, vous pouvez utiliser JavaScript pour envoyer et recevoir des messages:
const options = {
transports: ['websocket'],
};
const socket = io('http://localhost:9501', options);
socket.on('connect', () => {
console.log('websocket connected.');
socket.emit('hello', "hello server");
});
socket.on('message', data => {
console.log('received:', data);
});
socket.on('disconnect', () => console.log('websocket disconnected.'));
Afin de prendre en charge les utilisateurs de consommer, de récompenser ou de mettre à niveau les services dans la plate-forme, il est très nécessaire d'établir un système de devises virtuel. Généralement, il doit inclure des fonctions telles que la gestion des comptes d'utilisateurs, le portail de recharge, les requêtes de solde et les enregistrements de transaction.
Voici un exemple de mise en œuvre simple basé sur PHP et MySQL pour la vérification de connexion des utilisateurs et la requête du solde du compte:
$username = $_POST["username"];
$password = $_POST["password"];
$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
mysqli_query($conn, "SET NAMES UTF8");
if ($conn->connect_error) {
die("Échec de la connexion: " . $conn->connect_error);
}
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "accueillir " . $row["username"] . " Se connecter!";
echo "Votre équilibre est " . $row["balance"] . " Yuan。";
}
} else {
echo "Nom d'utilisateur ou mot de passe incorrect!";
}
$conn->close();
Ce code est principalement utilisé pour la vérification de la connexion et l'affichage de l'équilibre. Dans les projets réels, les mécanismes de sécurité tels que l'authentification des jetons, le filtrage des entrées et le traitement d'injection anti-SQL doivent également être combinés.
Grâce à l'introduction de cet article, nous montrons comment utiliser PHP et Swoole pour créer un système de chat en direct de base et étendre les capacités de la recharge des utilisateurs et de la gestion des comptes de devises virtuels. Ce modèle est très adapté aux plateformes sociales, aux applications de diffusion en direct ou aux sites Web de contenu payant. À l'avenir, vous pouvez développer davantage les systèmes d'enveloppes rouges, les mécanismes de niveau ou les plates-formes de trading d'articles virtuelles sur cette base pour atteindre des fonctions de produit plus riches.