环境:swoole1.9.23、centos6.8、php5.6、nginx1.12.1、easyswoole1.1.0
1、原生swoole实现:
// websocket服务端1 $websocket_server = new swoole_websocket_server("0.0.0.0", 9510); $websocket_server->on('message', function (swoole_websocket_server $server, $frame) { $server->push($frame->fd, $frame->data); }); // websocket服务端2 $websocket_server1 = $websocket_server->addlistener('0.0.0.0', 9511, SWOOLE_SOCK_TCP); $websocket_server1->on('message', function (swoole_websocket_server $server, $frame) { $server->push($frame->fd, '1--'.$frame->data); }); $websocket_server->start();
前端测试:
2、基于easyswoole的实现
①设置配置文件:更改监听地址为外网访问地址,端口为9510,SERVER_TYPE为websocket模式
②在Event.php文件中的beforeWorkerStart添加如下代码:
// websocket服务端1:推送数据 $server->on("message",function (\swoole_websocket_server $server, \swoole_websocket_frame $frame) use ($redis, $prefix){ $server->push($frame->fd,'服务端1'); }); // websocket服务端2: 接收数据 $websocket1 = $server->addlistener("0.0.0.0",9511,SWOOLE_SOCK_TCP); $websocket1 ->on("message",function (\swoole_websocket_server $server, \swoole_websocket_frame $frame) use ($redis, $prefix){ $server->push($frame->fd,'服务端2'); });
参考链接:
https://wiki.swoole.com/wiki/page/397.html
https://wiki.swoole.com/wiki/page/525.html
https://wiki.swoole.com/wiki/page/528.html
来自ansion博客
2018-02-25 21:16:37