+
95
-

回答

<?php
$server = new Swoole\WebSocket\Server("0.0.0.0", 9514, SWOOLE_BASE);

$tcp = $server->listen("0.0.0.0", 9515, SWOOLE_SOCK_TCP);

$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();

网友回复

我知道答案,我要回答