看看官方的示例代码
<?php $server = new Swoole\WebSocket\Server("0.0.0.0", 9514, SWOOLE_BASE); $tcp = $server->listen("0.0.0.0", 9515, SWOOLE_SOCK_TCP); $tcp->set([]); $server->on("open", function ($serv, $req) { echo "new WebSocket Client, fd={$req->fd}\n"; }); $server->on("message", function ($serv, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $serv->push($frame->fd, "this is server OnMessage"); }); $tcp->on('receive', function ($server, $fd, $reactor_id, $data) { //仅遍历 9514 端口的连接,因为是用的$server,不是$tcp $websocket = $server->ports[0]; foreach ($websocket->connections as $_fd) { var_dump($_fd); if ($server->exist($_fd)) { $server->push($_fd, "this is server onReceive"); } } $server->send($fd, 'receive: '.$data); }); $server->start();
网友回复