Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert das Senden und Empfangen von Nachrichten in einem Online-Instant-Messaging-System

PHP implementiert das Senden und Empfangen von Nachrichten in einem Online-Instant-Messaging-System

PHPz
PHPzOriginal
2023-05-24 12:31:571454Durchsuche

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.

  1. Das Grundprinzip der Implementierung eines Online-Instant-Messaging-Systems

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 PHP
  1. 2.1 Erstellen einer Datenbank

Bevor 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.

Zusammenfassung
  1. In diesem Artikel wird die Methode zum Senden und Empfangen von Nachrichten im Online-Instant-Messaging-System mithilfe der Programmiersprache PHP vorgestellt. Der Schlüssel zur Realisierung eines Online-Instant-Messaging-Systems ist die Interaktion zwischen serverseitigen und clientseitigen Codes, sodass Nachrichten schnell und effizient zwischen verschiedenen Clients übertragen werden können. Auf diese Weise können wir Online-Instant Messaging in Webanwendungen implementieren, um eine bequeme und schnelle Art der Kommunikation zu erreichen.

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:API-Design in PHPNächster Artikel:API-Design in PHP