Mit der Entwicklung der Internet-Technologie sind Echtzeit-Webanwendungen zu einer immer beliebter werdenden Entwicklungsmethode geworden. WebSocket ist als Vollduplex-Kommunikationsprotokoll zu einer wichtigen Methode zur Implementierung von Echtzeit-Webanwendungen geworden. PHP bietet außerdem eine WebSocket-API, um die Verwendung durch Entwickler zu erleichtern. In diesem Artikel wird erläutert, wie Sie die WebSocket-API in PHP verwenden, um Echtzeit-Webanwendungen zu implementieren.
1. WebSocket-Übersicht
WebSocket ist ein Protokoll, das Vollduplex-Kommunikation über eine einzige TCP-Verbindung ermöglicht. Es ermöglicht Webanwendungen, Echtzeitdaten zwischen dem Client und dem Server zu kommunizieren. Im Vergleich zum HTTP-Protokoll weist WebSocket eine geringere Latenz und weniger Handshakes bei der Datenübertragung auf, was mehr Echtzeit-Webanwendungen ermöglicht.
2. Verwenden Sie die WebSocket-API in PHP, um Echtzeit-Webanwendungen zu implementieren.
composer require react/socket:^1.11.0 react/event-loop:^1.1.0
server.php
-Datei und führen Sie den Befehl php server.php
aus, um den WebSocket-Dienst zu starten. Zu diesem Zeitpunkt läuft der WebSocket-Dienst bereits auf dem lokalen Port 8080 und kann Client-Verbindungen akzeptieren. use ReactSocketConnectionInterface; use ReactSocketServer; require __DIR__ . '/vendor/autoload.php'; $loop = ReactEventLoopFactory::create(); $socket = new Server('localhost:8080', $loop); $clients = new SplObjectStorage(); $socket->on('connection', function (ConnectionInterface $conn) use ($clients) { $clients->attach($conn); $conn->on('data', function ($data) use ($clients, $conn) { foreach ($clients as $client) { if ($conn !== $client) { $client->write($data); } } }); $conn->on('close', function () use ($clients, $conn) { $clients->detach($conn); }); }); $loop->run();
Führen Sie den WebSocket-Client ausserver.php
文件,运行命令php server.php
启动WebSocket服务。此时,WebSocket服务已经在本机的8080端口上运行,并且可以接受客户端连接。
下面是一个简单的PHP WebSocket客户端代码:
use ReactEventLoopFactory; use ReactSocketConnector; use ReactSocketConnectionInterface; require __DIR__ . '/vendor/autoload.php'; $loop = Factory::create(); $connector = new Connector($loop); $connector->connect('tcp://127.0.0.1:8080')->then(function (ConnectionInterface $conn) use ($loop) { $conn->on('data', function ($data) { echo $data; }); $loop->addReadStream(STDIN, function () use ($conn) { $line = fgets(STDIN); $conn->write($line); }); }, function (Exception $e) { echo 'Could not connect: ' . $e->getMessage() . PHP_EOL; }); $loop->run();
该代码创建了一个WebSocket客户端,连接到本机的8080端口。当有数据传输时,将数据输出到控制台上。当读取控制台输入时,将输入传输给WebSocket服务端。
保存上述代码为client.php
文件,运行命令php client.php
启动WebSocket客户端。此时,WebSocket客户端已经连接到本机的WebSocket服务器。
在控制台中输入数据,数据将会被发送给WebSocket服务端,服务端将数据回传给除发送者外的其他客户端。我们可以打开多个控制台运行php client.php
Speichern Sie den obigen Code als client.php
-Datei und führen Sie den Befehl php client.php
aus Starten Sie den WebSocket-Client. Zu diesem Zeitpunkt hat der WebSocket-Client eine Verbindung zum lokalen WebSocket-Server hergestellt.
WebSocket-Kommunikation testen
🎜🎜Geben Sie Daten in die Konsole ein. Die Daten werden an den WebSocket-Server gesendet und der Server sendet die Daten an andere Clients außer dem Absender zurück. Wir können mehrere Konsolen öffnen undphp client.php
ausführen, um den Echtzeit-Kommunikationseffekt zu testen. 🎜🎜3. Zusammenfassung🎜🎜Die WebSocket-API bietet PHP eine Möglichkeit, WebSocket zu implementieren, mit dem problemlos Echtzeit-Webanwendungen implementiert werden können. In diesem Artikel wird erläutert, wie Sie die WebSocket-API in PHP zum Implementieren von Echtzeit-Webanwendungen verwenden. Er bietet einen Überblick über WebSocket, das Erstellen eines WebSocket-Dienstes, das Erstellen eines WebSocket-Clients und das Testen der WebSocket-Kommunikation. 🎜Das obige ist der detaillierte Inhalt vonSo verwenden Sie die WebSocket-API in PHP, um Echtzeit-Webanwendungen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!