Avec l'évolution des modes de vie des gens et le développement continu de la technologie des réseaux, la messagerie instantanée est devenue l'une des méthodes de communication essentielles pour les personnes modernes. Dans le cadre de cette tendance, divers systèmes de messagerie instantanée en ligne ont vu le jour. Étant donné que des personnes situées à différents endroits peuvent échanger des messages en même temps, comment le système de messagerie instantanée en ligne réalise-t-il la transmission des messages ? Cet article explique comment envoyer et recevoir des messages dans un système de messagerie instantanée en ligne via le langage de programmation PHP.
Le principe de base d'un système de messagerie instantanée en ligne est d'envoyer des messages d'un client à un autre. Ce processus comprend deux parties principales :
1.1 Envoi de messages
Dans le processus d'envoi d'un message d'un client à un autre, les étapes suivantes doivent être suivies :
(a) L'utilisateur saisit le message sur le client et clique sur le bouton Envoyer ;
(b) Envoyer le message au serveur via le réseau ;
(c) Le serveur enregistre le message dans la base de données
(d) Le serveur envoie le message au client cible ; (e) Le client cible L'extrémité reçoit le message et le traite.
1.2 Réception des messages
Le client doit interroger en permanence le serveur pour vérifier s'il y a de nouveaux messages. Lorsque le serveur reçoit de nouveaux messages, le client doit obtenir et traiter les messages à temps.
Le processus de base de mise en œuvre d'un système de messagerie instantanée en ligne à l'aide de PHPAvant de mettre en œuvre un système de messagerie instantanée en ligne, vous devez créer une base de données pour stocker les messages. Vous pouvez utiliser MySQL ou d'autres bases de données relationnelles.
Créez le tableau suivant dans la base de données :
CREATE TABLE messages (
id int(11) NOT NULL AUTO_INCREMENT, sender varchar(255) NOT NULL, receiver varchar(255) NOT NULL, message text NOT NULL, created_at datetime NOT NULL, PRIMARY KEY (id)
);
2.2 Établir le code côté serveur
Le code côté serveur doit être responsable de la réception des messages saisis par les utilisateurs, de l'enregistrement des messages dans la base de données et stocker les messages envoyés au client cible.
Tout d'abord, vous devez utiliser le code suivant pour vous connecter à la base de données :
$conn = mysqli_connect("localhost", "username", "password", "database_name");
Ensuite, vous devez écrire un fonction pour traiter le message saisi par l'utilisateur :
function save_message($sender, $receiver, $message) {
global $conn; $t = time(); $created_at = date("Y-m-d H:i:s", $t); $query = "INSERT INTO messages (sender, receiver, message, created_at) VALUES ('$sender', '$receiver', '$message', '$created_at')"; mysqli_query($conn, $query);
}
Cette fonction enregistre le nom de l'utilisateur, le destinataire et le contenu du message dans la base de données.
Ensuite, écrivez une fonction pour récupérer et envoyer des messages depuis la base de données :
function get_messages($receiver) {
global $conn; $query = "SELECT * FROM messages WHERE receiver='$receiver'"; $result = mysqli_query($conn, $query); $messages = array(); while ($row = mysqli_fetch_assoc($result)) { $messages[] = $row; } $json_messages = json_encode($messages); echo $json_messages;
}
Cette fonction récupère tous les messages destinés à l'utilisateur cible à partir de la base de données et les encode dans un tableau JSON. Format. En appelant cette fonction, le serveur peut envoyer le message au client cible.
2.3 Création du code client
Le code client doit être responsable de l'envoi des messages saisis par l'utilisateur au serveur et de la réception des nouveaux messages du serveur.
Tout d'abord, vous devez utiliser le code suivant pour vous connecter au serveur :
var socket = new WebSocket("ws://localhost:8080");
Ensuite, lorsque l'utilisateur clique sur le bouton d'envoi, appelez le code suivant pour envoyer le message au serveur :
var sender = "username1";
var récepteur = "username2";var message = "hello, username2";
var data = {"sender": sender, "receiver ": Receiver, "message": message };
socket.send(JSON.stringify(data));
Enfin, vous pouvez écrire une fonction pour interroger le serveur à la recherche de nouveaux messages :
setInterval(function() {
var receiver = "username1"; var data = {"receiver": receiver}; socket.send(JSON.stringify(data));
}, 1000);
Cette fonction envoie des données au serveur toutes les secondes pour recevoir de nouveaux messages. Cette fonctionnalité peut être plus facilement réalisée en utilisant jQuery ou d'autres bibliothèques JavaScript.
RésuméCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!