类别: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网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章