Maison  >  Article  >  développement back-end  >  PHP implémente l'envoi et la réception de messages dans le système de messagerie instantanée en ligne

PHP implémente l'envoi et la réception de messages dans le système de messagerie instantanée en ligne

PHPz
PHPzoriginal
2023-05-24 12:31:571454parcourir

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.

  1. Le principe de base de la mise en œuvre d'un système de messagerie instantanée en ligne

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 PHP
  1. 2.1 Création d'une base de données

Avant 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é
  1. Cet article présente la méthode d'envoi et de réception de messages dans le système de messagerie instantanée en ligne via le langage de programmation PHP. La clé pour réaliser un système de messagerie instantanée en ligne réside dans l’interaction entre les codes côté serveur et côté client, afin que les messages puissent être transmis rapidement et efficacement entre différents clients. De cette manière, nous pouvons implémenter la messagerie instantanée en ligne dans les applications Web pour obtenir un moyen de communication pratique et rapide.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Conception d'API en PHPArticle suivant:Conception d'API en PHP