这里写问题描述
3个websocket,如何让每一个Gateway的数据怎么定指定到哪个businessworker上来处理啊,在webman的config文件夹里怎么配置啊?
比如chatmsg的Gateway 指定到 'eventHandler' => common\sockets\ChatEvents::class,
notice的的Gateway 指定到 'eventHandler' => common\sockets\NoticeEvents::class,
channel的Gateway 指定到 'eventHandler' => common\sockets\ChannelEvents::class,
在webman的config文件夹里怎么配置啊?
return [
// msg 用于聊天
'chatmsg' => [
'handler' => Gateway::class,
'listen' => 'websocket://0.0.0.0:7272',
'count' => 1,
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 20,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
// notice 新订单和新退款单 消息通知
'notice' => [
'handler' => Gateway::class,
'listen' => 'websocket://0.0.0.0:7273',
'count' => 1,
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 20,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
// 系统程序接收到发送过来的消息
'channel' => [
'handler' => Gateway::class,
'listen' => 'frame://0.0.0.0:7274',
'count' => 1,
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 20,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
'businesser' => [
'handler' => BusinessWorker::class,
'count' => cpu_count()*2,
'constructor' => ['config' => [
//'eventHandler' => plugin\webman\gateway\Events::class,
'eventHandler' => common\sockets\ChatEvents::class,
'name' => 'ChatBusinessWorker',
'registerAddress' => '127.0.0.1:1236',
]]
],
'register' => [
'handler' => Register::class,
'listen' => 'text://127.0.0.1:1236',
'count' => 1, // Must be 1
'constructor' => []
],
];
同一个gatewayWorker里不能分别指定eventHandler。
在Events.php里统一接收,让然后根据
$_SERVER['GATEWAY_PORT']
区分端口,手动调用不同的类谢谢 明白了