类别:Swoole / 日期:2019-12-16 / 浏览:193 / 评论:0

WebSocket(ws)是html5新增添的一种通信协定,现在盛行的浏览器都支撑这个协定,比方Chrome,Safrie,Firefox,Opera,IE等等,对该协定支撑最早的应该是chrome,从chrome12就已入手下手支撑,跟着协定草案的不断变化,各个浏览器对协定的完成也在不断的更新。 (引荐进修: swoole视频教程)
swoole 1.7.9增添了内置的WebSocket服务器支撑,经由过程几行PHP代码就能够写出一个异步非壅塞多历程的WebSocket服务器。
$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();
WebSocket服务器除了吸收Swoole\Server和Swoole\Http\Server基类的回调函数外,分外增添了3个回调函数设置。个中:
onMessage回调函数为必选
onOpen和onHandShake回调函数为可选
WebSocket\Server是Server的子类,因而能够挪用Server的悉数要领。
须要注重WebSocket服务器向客户端发送数据应该运用WebSocket\Server::push要领,此要领会举行WebSocket协定打包。而Server::send要领是原始的TCP发送接口。
WebSocket\Server::disconnect要领能够从服务端主动封闭一个WebSocket衔接,能够指定状况码(依据WebSocket协定,可运用的状况码为十进制的一个整数,取值能够是1000或4000-4999)和封闭缘由(采纳utf-8编码、字节长度不凌驾125的字符串)。
在未指定情况下状况码为1000,封闭缘由为空
以上就是swoole怎样翻开ws的细致内容,更多请关注ki4网别的相干文章!