“GatewayWorker是基于Workerman开发的一个可分布式部署的TCP长连接框架,专门用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等.
GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接,并转发客户端的数据给BusinessWorker进程处理,BusinessWorker进程负责处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。Gateway服务和BusinessWorker服务可以分开部署在不同的服务器上,实现分布式集群。
GatewayWorker提供非常方便的API,可以全局广播数据、可以向某个群体广播数据、也可以向某个特定客户端推送数据。配合Workerman的定时器,也可以定时推送数据。
1、下载demo代码:https://www.workerman.net/download/GatewayWorker.zip
2、解压GatewayWorker.zip
3、进入GatewayWorker目录
4、双击start_for_win.bat
启动,效果如下
5、新开几个cmd命令行窗口运行telnet 127.0.0.1 8282
,输入任意字符即可聊天
以上表示TCP连接测试成功
1、修改 start_gateway.php
指定websocket协议
$gateway = new Gateway(websocket://0.0.0.0:8282);
2、重新启动 start_for_win.bat
3、浏览器控制台测试
var ws = new WebSocket('ws://127.0.0.1:8282');
ws.onmessage = function(event) {
console.log('开源技术小栈接收消息: ' + event.data);
};
从图上我们可以看出Gateway负责接收客户端的连接以及连接上的数据,然后Worker接收Gateway发来的数据做处理,然后再经由Gateway把结果转发给其它客户端。每个客户端都有很多的路由到达另外一个客户端,例如client⑦与client①可以经由蓝色路径完成数据通讯.
适用于客户端与客户端需要实时通讯的项目。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有