PHP WebSocket-Entwicklungsbeispiele: Praktische Fälle zur Implementierung bestimmter Funktionen
Einführung:
Mit der Entwicklung des Internets weist das traditionelle HTTP-Protokoll einige Einschränkungen bei der Echtzeitkommunikation auf. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine Echtzeitkommunikation zwischen Client und Server realisieren kann. In diesem Artikel wird anhand eines praktischen Falls vorgestellt, wie PHP WebSocket zum Implementieren bestimmter Funktionen verwendet wird.
(1) Richten Sie einen WebSocket-Server ein
Zunächst müssen wir einen WebSocket-Server erstellen. Sie können die Swoole-Erweiterung von PHP verwenden, um einen WebSocket-Server zu erstellen. Swoole ist eine leistungsstarke PHP-Erweiterung, die WebSocket unterstützt. Wir können einen WebSocket-Server erstellen, indem wir den folgenden Code ausführen:
<?php $server = new swoole_websocket_server("0.0.0.0", 9501); $server->on('open', function ($server, $request) { echo "new connection open: ".$request->fd; }); $server->on('message', function ($server, $frame) { echo "received message: ".$frame->data; }); $server->on('close', function ($ser, $fd) { echo "connection close: ".$fd; }); $server->start(); ?>
In diesem Code erstellen wir einen WebSocket-Server mit der Überwachungs-IP-Adresse 0.0.0.0 und der Portnummer 9501. Wenn eine neue Verbindung hergestellt wird, ruft der Server automatisch die Event-Handler-Funktion open
事件处理函数;当接收到客户端发送过来的消息时,服务器会调用message
事件处理函数;而当连接关闭时,服务器会调用close
auf.
(2) Front-End-Seitenentwicklung
Als nächstes müssen wir eine Front-End-Seite entwickeln, um die Chatroom-Oberfläche anzuzeigen und mit dem Server zu kommunizieren. Das Folgende ist ein einfacher Front-End-Seitencode:
<!DOCTYPE html> <html> <head> <title>WebSocket Chat Room</title> <script> var socket = new WebSocket("ws://localhost:9501"); socket.onopen = function(event) { console.log("WebSocket connection open"); }; socket.onmessage = function(event) { console.log("Received message: " + event.data); }; socket.onclose = function(event) { console.log("WebSocket connection closed"); }; </script> </head> <body> <h1>WebSocket Chat Room</h1> <div id="chat-messages"></div> <input type="text" id="input-message"> <button onclick="sendMessage()">Send</button> <script> function sendMessage() { var message = document.getElementById("input-message").value; socket.send(message); } </script> </body> </html>
Dieser Code stellt über WebSocket eine Verbindung zum Server her und definiert die Verarbeitungsfunktionen zum Öffnen der Verbindung, zum Empfangen von Nachrichten und zum Schließen der Verbindung. Über Schaltflächen und Textfelder können Benutzer Chatinhalte eingeben und an den Server senden.
(3) Implementierung der Chatroom-Funktion
Auf der Serverseite müssen wir etwas Logik hinzufügen, um die Chatroom-Funktion zu implementieren. Ändern Sie den Servercode wie folgt:
<?php $server = new swoole_websocket_server("0.0.0.0", 9501); $server->on('open', function ($server, $request) { echo "new connection open: ".$request->fd." "; }); $server->on('message', function ($server, $frame) { echo "received message: ".$frame->data." "; // 广播消息给所有客户端 foreach ($server->connections as $fd) { $server->push($fd, $frame->data); } }); $server->on('close', function ($ser, $fd) { echo "connection close: ".$fd." "; }); $server->start(); ?>
Im geänderten Code sendet der Server beim Empfang einer Nachricht vom Client die Nachricht an alle verbundenen Clients. Auf diese Weise werden alle von Benutzern auf der Chatroom-Seite gesendeten Nachrichten in Echtzeit auf den Seiten anderer Benutzer angezeigt.
Zusammenfassung:
Durch die oben genannten praktischen Fälle haben wir gelernt, wie man mit PHP WebSocket einen einfachen Online-Chatroom implementiert. Mithilfe der Swoole-Erweiterung von PHP können wir problemlos einen auf WebSocket basierenden Server erstellen, um Echtzeit-Kommunikationsfunktionen zu erreichen. Darüber hinaus kann WebSocket in weiteren Szenarien verwendet werden, z. B. zur Echtzeit-Datenanzeige, zur kollaborativen Bearbeitung durch mehrere Personen usw. Ich hoffe, dass dieser Artikel zum Verständnis und zur Anwendung von PHP WebSocket hilfreich sein wird.
Das obige ist der detaillierte Inhalt vonBeispiele für die PHP-WebSocket-Entwicklung: praktische Beispiele für die Implementierung bestimmter Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!