workerman新增tcp端口支持app socket通信

时间:2022-09-14 15:23:09

workerman的不同协议可以互通,如pc端一般使用websocket连服务端,app使用tcp,只要保证发送的数据格式都是一样如json就行


当需要做app聊天、推送时,就需要让app客户端连上socket服务端,这时可新增个tcp端口


同一个start_gateway.php中可以添加多个端口进而使用不同协议


start_gateway.php

//Websocket gateway 进程
$gateway = new Gateway("Websocket://0.0.0.0:7272");
// 设置名称,方便status时查看
$gateway->name = 'pcWebsocket';
// 设置进程数,gateway进程数建议与cpu核数相同
$gateway->count = 4;
// 分布式部署时请设置成内网ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 4000;
// 心跳间隔
$gateway_text->pingInterval = 8;
$gateway_text->pingNotResponseLimit = 3;
$gateway_text->pingData = '{"type":"ping"}';
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1236';


// ##########新增端口支持socket开始##########
// 新增55250端口,开启socket连接
$gateway_text = new Gateway("tcp://0.0.0.0:58150");
// 进程名称,主要是status时方便识别
$gateway_text->name = 'appTcp';
// 开启多少text协议的gateway进程
$gateway_text->count = 8;
// 本机ip(分布式部署时需要设置成内网ip)
$gateway_text->lanIp = '127.0.0.1';
// gateway内部通讯起始端口,起始端口不要重复
$gateway_text->startPort = 5000;
// 心跳间隔
$gateway_text->pingInterval = 8;
$gateway_text->pingNotResponseLimit = 3;
$gateway_text->pingData = '{"type":"ping"}';
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1236';