多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 配置选项 [TOC] `WebSocket\Server`是`Server`的子类,可以使用`Server::set`方法传入配置选项,设置某些参数。 ## websocket\_subprotocol 设置`WebSocket`子协议。设置后握手响应的`Http`头会增加`Sec-WebSocket-Protocol: {$websocket_subprotocol}`。具体使用方法请参考`WebSocket`协议相关`RFC`文档。 ~~~ $server->set([ 'websocket_subprotocol' => 'chat', ]); ~~~ ## open\_websocket\_close\_frame 启用websocket协议中关闭帧(opcode为0x08的帧)在onMessage回调中接收,默认为false。 开启后,可在WebSocketServer中的`onMessage`回调中接收到客户端或服务端发送的关闭帧,开发者可自行对其进行处理。 示例: ~~~ $server = new swoole_websocket_server("0.0.0.0", 9501); $server->set(array("open_websocket_close_frame" => true)); $server->on('open', function (swoole_websocket_server $server, $request) {}); $server->on('message', function (swoole_websocket_server $server, $frame) { if ($frame->opcode == 0x08) { echo "Close frame received: Code {$frame->code} Reason {$frame->reason}\n"; } else { echo "Message received: {$frame->data}\n"; } }); $server->on('close', function ($ser, $fd) {}); $server->start(); ~~~