gateway-worker插件

v1.0.9
版本
2024-04-30
版本更新時間
24721
安裝
17
star
簡介
webman的gateway-worker插件,用于分布式即時通訊、物聯(lián)網(wǎng)等領(lǐng)域。
安裝
composer require webman/gateway-worker
使用
原start_gateway.php
start_businessworker.php
start_register.php
中相關(guān)的代碼配置移動到
config/plugin/webman/gateway-worker/process.php
中
業(yè)務(wù)目錄在 plugin/webman/gateway
目錄
添加gateway進程參考配置
<?php
use Webman\GatewayWorker\Gateway;
use Webman\GatewayWorker\BusinessWorker;
use Webman\GatewayWorker\Register;
return [
'gateway' => [
'handler' => Gateway::class,
'listen' => 'websocket://0.0.0.0:7272',
'count' => cpu_count(),
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 2300,
'pingInterval' => 25,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
'gateway-tcp' => [ // 假設(shè)增加一個tcp端口的gateway進程
'handler' => Gateway::class,
'listen' => 'tcp://0.0.0.0:7373', // 注意這里端口不能重復(fù)
'count' => cpu_count(),
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 3300, // 注意這里端口不能重復(fù),步數(shù)大大一些,不能和上面2300太接近
'pingInterval' => 25,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
'worker' => [
'handler' => BusinessWorker::class,
'count' => cpu_count()*2,
'constructor' => ['config' => [
'eventHandler' => plugin\webman\gateway\Events::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' => []
],
];
提示
如果你要在webman控制器里調(diào)用Gateway接口,需要設(shè)置Gateway::$registerAddress
為正確的值,例如
// register.listen 里配置的 ip和端口
Gateway::$registerAddress = '127.0.0.1:1236';
Gateway::sendToUid($uid, $data);
更多參見gateway-worker手冊