WebSocket (ws) ist ein neues Kommunikationsprotokoll, das in HTML5 hinzugefügt wurde. Derzeit unterstützen gängige Browser dieses Protokoll, wie Chrome, Safrie, Firefox, Opera, IE usw., die früheste Unterstützung für dieses Protokoll sollte Chrome sein, das seit Chrome12 unterstützt wird. Da sich der Protokollentwurf ständig ändert, wird auch die Implementierung des Protokolls durch jeden Browser ständig aktualisiert. (Empfohlenes Lernen:Swoole-Video-Tutorial)
Swoole 1.7.9 bietet integrierte WebSocket-Serverunterstützung, und Sie können mit wenigen Schritten einen asynchronen, nicht blockierenden Multiprozess schreiben Zeilen PHP-Code WebSocket-Server.
$server = new Swoole\WebSocket\Server("0.0.0.0", 9501); $server->on('open', function (Swoole\WebSocket\Server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }); $server->on('message', function (Swoole\WebSocket\Server $server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); }); $server->on('close', function ($ser, $fd) { echo "client {$fd} closed\n"; }); $server->start();
Zusätzlich zum Empfang der Rückruffunktionen der Basisklassen SwooleServer und SwooleHttpServer fügt der WebSocket-Server drei zusätzliche Rückruffunktionseinstellungen hinzu.Unter ihnen:
onMessage-Rückruffunktion ist erforderlich
onOpen- und onHandShake-Rückruffunktionen sind optional
WebSocketServer ist eine Unterklasse von Server, also kann es sein namens Alle Methoden des Servers.
Es ist zu beachten, dass der WebSocket-Server die Methode WebSocketServer::push verwenden sollte, um Daten an den Client zu senden. Diese Methode verpackt das WebSocket-Protokoll. Die Server::send-Methode ist die ursprüngliche TCP-Sendeschnittstelle.
Die WebSocketServer::disconnect-Methode kann eine WebSocket-Verbindung vom Server aktiv schließen und den Statuscode angeben (gemäß dem WebSocket-Protokoll ist der verwendbare Statuscode eine dezimale Ganzzahl und der Wert kann 1000 oder 4000 sein -4999) und den Grund für das Schließen (eine in UTF-8 codierte Zeichenfolge mit einer Bytelänge von nicht mehr als 125).
Der Statuscode ist 1000, wenn nicht angegeben und der Grund für das Herunterfahren leer ist
Das obige ist der detaillierte Inhalt vonSo öffnen Sie WS mit Swoole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!