Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert das Senden und Empfangen von Nachrichten in einem Online-Instant-Messaging-System
Mit den Veränderungen im Lebensstil der Menschen und der kontinuierlichen Weiterentwicklung der Netzwerktechnologie ist Instant Messaging zu einer der wesentlichen Kommunikationsmethoden für moderne Menschen geworden. Im Rahmen dieses Trends sind verschiedene Online-Instant-Messaging-Systeme entstanden. Wie realisiert das Online-Instant-Messaging-System die Zustellung von Nachrichten, da Menschen an verschiedenen Orten gleichzeitig Nachrichten austauschen können? In diesem Artikel wird erläutert, wie Sie mithilfe der Programmiersprache PHP Nachrichten in einem Online-Instant-Messaging-System senden und empfangen.
Das Grundprinzip eines Online-Instant-Messaging-Systems besteht darin, Nachrichten von einem Client an einen anderen zu senden. Dieser Prozess besteht aus zwei Hauptteilen:
1.1 Senden von Nachrichten
Beim Senden einer Nachricht von einem Client an einen anderen müssen die folgenden Schritte ausgeführt werden:
(a) Der Benutzer gibt die Nachricht auf dem Client ein und klickt auf die Schaltfläche „Senden“;
(b) Senden Sie die Nachricht an den Server
(c) Der Server speichert die Nachricht in der Datenbank
(e) Der Zielkunde Das Ende empfängt die Nachricht und verarbeitet sie.
1.2 Nachrichtenempfang
Der Client muss den Server kontinuierlich abfragen, um zu prüfen, ob neue Nachrichten vorliegen. Wenn der Server neue Nachrichten hat, muss der Client die Nachrichten rechtzeitig abrufen und verarbeiten.
Der grundlegende Prozess der Implementierung eines Online-Instant-Messaging-Systems mit PHPBevor Sie ein Online-Instant-Messaging-System implementieren, müssen Sie eine Datenbank zum Speichern von Nachrichten erstellen. Sie können MySQL oder andere relationale Datenbanken verwenden.
Erstellen Sie die folgende Tabelle in der Datenbank:
CREATE TABLE-Nachrichten (
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 Erstellen Sie einen serverseitigen Code
Der serverseitige Code muss für den Empfang von von Benutzern eingegebenen Nachrichten und das Speichern von Nachrichten verantwortlich sein die Datenbank und das Speichern von Nachrichten, die an den Zielclient gesendet werden.
Zuerst müssen Sie den folgenden Code verwenden, um eine Verbindung zur Datenbank herzustellen:
$conn = mysqli_connect("localhost", "username", "password", "database_name");
Als nächstes müssen Sie einen schreiben Funktion zum Verarbeiten der vom Benutzer eingegebenen Nachricht:
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);
}
Diese Funktion speichert den Benutzernamen, den Empfänger und den Nachrichteninhalt in der Datenbank.
Als nächstes schreiben Sie eine Funktion zum Abrufen und Senden von Nachrichten aus der Datenbank:
Funktion 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;
}
Diese Funktion ruft alle Nachrichten des Zielbenutzers aus der Datenbank ab und codiert sie in ein JSON-Array-Format . Durch Aufrufen dieser Funktion kann der Server die Nachricht an den Zielclient senden.
2.3 Client-Code erstellen
Der Client-Code muss dafür verantwortlich sein, die vom Benutzer eingegebenen Nachrichten an den Server zu senden und neue Nachrichten vom Server zu erhalten.
Zuerst müssen Sie den folgenden Code verwenden, um eine Verbindung zum Server herzustellen:
var socket = new WebSocket("ws://localhost:8080");
Wenn der Benutzer als Nächstes auf die Schaltfläche „Senden“ klickt, rufen Sie den auf Folgender Code zum Senden der Nachricht an den Server:
var sender = "username1";
var Receiver = "username2";var message = "hello, username2";
var data = {"sender": sender, "receiver ": Empfänger, "Nachricht": Nachricht };
socket.send(JSON.stringify(data));
Schließlich können Sie eine Funktion schreiben, um den Server nach neuen Nachrichten abzufragen:
setInterval(function() {
var receiver = "username1"; var data = {"receiver": receiver}; socket.send(JSON.stringify(data));
}, 1000);
Diese Funktion sendet jede Sekunde Daten an den Server, um neue Nachrichten zu erhalten. Diese Funktionalität lässt sich einfacher mit jQuery oder anderen JavaScript-Bibliotheken erreichen.
ZusammenfassungDas obige ist der detaillierte Inhalt vonPHP implementiert das Senden und Empfangen von Nachrichten in einem Online-Instant-Messaging-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!