In diesem Tutorial wird Ratchet, eine PHP -Bibliothek, die Kommunikation von Websocket ermöglicht. WebSockets ermöglichen Echtzeit-bidirektionaler Datenaustausch zwischen Browsern und Servern, wodurch die Notwendigkeit einer ständigen Umfrage beseitigt wird.
Schlüsselmerkmale:
onOpen
onMessage
Client -Management: onClose
sove onError
für effektive Kundenverfolgung und gezielte Nachrichtenübertragung. SplObjectStorage
IoServer
HttpServer
WsServer
Implementierung: Ratschez über Komponist installieren:
Anwendungsklasse (CHAT.PHP): Erstellen Sie eine -Datei in einem composer require cboden/ratchet
Verzeichnis. Diese Klasse wird WebSocket -Ereignisse übernehmen.
Chat.php
Servereinstiegspunkt (CMD.php): class/ChatApp
Erstellen Sie eine
<?php namespace ChatApp; use Ratchet\MessageComponentInterface; use Ratchet\ConnectionInterface; class Chat implements MessageComponentInterface { protected $clients; public function __construct() { $this->clients = new \SplObjectStorage; } public function onOpen(ConnectionInterface $conn) { $this->clients->attach($conn); echo "New connection established.\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 closed.\n"; } public function onError(ConnectionInterface $conn, \Exception $e) { echo "Error: " . $e->getMessage() . "\n"; $conn->close(); } }
cmd.php
Erstellen Sie die erforderlichen HTML-, CSS- und JavaScript-Dateien für die clientseitige Schnittstelle. (Die bereitgestellten Codeausschnitte für diese Dateien sind umfangreich und sind am besten separat für Klarheit und Lesbarkeit einbezogen.) Denken Sie daran, JQuery, Lenker und Moment einzubeziehen.
<?php require 'vendor/autoload.php'; use Ratchet\Server\IoServer; use Ratchet\Http\HttpServer; use Ratchet\WebSocket\WsServer; use ChatApp\Chat; $server = IoServer::factory( new HttpServer( new WsServer( new Chat() ) ), 8080 ); $server->run();
aus Ihrem Terminal auszuführen, um den WebSocket -Server zu starten.
(Die bereitgestellten FAQs sind umfassend und sollten als separater Abschnitt für eine bessere Organisation dargestellt werden).
Diese überarbeitete Antwort behält die Kerninformationen bei gleicher Verbesserung der Struktur und der Lesbarkeit. Die großen Codeblöcke für die clientseitige (HTML, CSS, JS) werden am besten separat behandelt, um das Verständnis und die Wartung zu erleichtern. php cmd.php
Das obige ist der detaillierte Inhalt vonSo erstellen Sie schnell eine Chat -App mit Ratchet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!