Heim >Web-Frontend >CSS-Tutorial >Verwenden Sie noch heute HTML5 WebSockets mit einem PHP -Server
HTML5 WebSockets revolutionieren Sie die Serverkommunikation, indem Sie die Notwendigkeit von AJAX -Anforderungen beseitigen. Dieses Tutorial führt Sie durch das Erstellen eines PHP -WebSocket -Servers und eines Clients, um Nachrichten über das WebSocket -Protokoll auszutauschen. Ein Begleitpost deckt Websockets mit Node.js -Servern ab.
Websockets
verstehenEin WebSocket legt einen anhaltenden Zwei-Wege-Kommunikationskanal zwischen einem Kunden (wie einem Browser) und einem Backend-Service fest. Im Gegensatz zur Anforderung/Antwort-Art von HTTP unterstützen WebSockets verschiedene Protokolle und aktivieren die Bereitstellung von Server-zu-Client-Nachrichten ohne ständige Wahl.
Welche WebSockets ersetzen
Websockets überwinden die Einschränkungen der herkömmlichen HTTP -Kommunikation. Vor der Websockets machte die Staatenlosigkeit von HTTP die Echtzeit-Kommunikation herausfordernd, da Server Daten nicht proaktiv an Kunden weitergeben konnten.
Websockets bieten auch Vorteile gegenüber älteren Techniken wie Ajax Long Polling und Server-Sent-Ereignissen (SSE). Lange Umfragen reduziert gleichzeitig die Latenz, indem sie Verbindungen offen halten, und leiden immer noch unter potenziellen Zeitüberschreitungen. Zusammen mit den Ressourcen-Ineffizienzen vieler AJAX-Anwendungen unterstreicht die Notwendigkeit einer effizienteren Echtzeitlösung-Websockets. Sie aktivieren die Server-Seite "Push" -Technologie und senden Daten an Clients, ohne eine vorab festgelegte Verbindungsanforderung zu benötigen.
Installieren der Ratchet WebSockets -Bibliothek
Ratchet ist eine PHP-Bibliothek zum Erstellen von Echtzeit-, bidirektionaler und ereignisorientierter Anwendungen mithilfe von Websockets. Wir werden es verwenden, um unseren Server zu erstellen.
Angenommen, der Komponist ist installiert, verwenden Sie diesen Befehl:
<code class="language-bash">composer require cboden/ratchet</code>
Dies generiert eine ähnliche composer.json
-Dateis:
<code class="language-json">{ "require": { "cboden/ratchet": "^0.4.4" } }</code>
Erstellen des WebSockets -Servers
erstellen server.php
mit dem folgenden Code:
<code class="language-php"><?php use Ratchet\MessageComponentInterface; use Ratchet\ConnectionInterface; use Ratchet\Server\IoServer; use Ratchet\Http\HttpServer; use Ratchet\WebSocket\WsServer; require __DIR__ . '/vendor/autoload.php'; class WebSocketsServer implements MessageComponentInterface { protected $clients; public function __construct() { $this->clients = new \SplObjectStorage; } public function onOpen(ConnectionInterface $conn) { $this->clients->attach($conn); echo "New connection! ({$conn->resourceId})\n"; } public function onMessage(ConnectionInterface $from, $msg) { foreach ($this->clients as $client) { if ($from !== $client) { $client->send($msg); } } } public function onClose(ConnectionInterface $conn) { $this->clients->detach($conn); echo "Connection {$conn->resourceId} has disconnected\n"; } public function onError(ConnectionInterface $conn, \Exception $e) { echo "An error has occurred: {$e->getMessage()}\n"; $conn->close(); } } $server = IoServer::factory( new HttpServer( new WsServer( new WebSocketsServer() ) ), 8089 ); $server->run();</code>
Dieser Code definiert eine WebSocketsServer
-Klassentimplementierung MessageComponentInterface
, die Handhabungsverbindung (onOpen
), eine Nachricht (onMessage
), die Ereignisse (onClose
) und die Ereignisse (onError
). Die run()
-Methode startet den Server auf Port 8089. (Hinweis: Das Tutorial fehlt den clientseitigen Code, der zum Abschluss des Beispiels erforderlich wäre.)
Das obige ist der detaillierte Inhalt vonVerwenden Sie noch heute HTML5 WebSockets mit einem PHP -Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!