您的位置:首页 >> Workerman >> 和屌丝一起学Workerman—路由

和屌丝一起学Workerman—路由

[ 孤狼 | 2020-05-10 15:52:47 | Workerman | 2391°C | 0条评论 ]

router

callback Gateway::$router

$gateway->router = function($worker_connections, $client_connection, $cmd, $buffer)

设置Gateway到BusinessWorker路由规则。默认规则是Gateway随机选择一个BusinessWorker进程,然后把当前client_id与这个BusinessWorker进程绑定,以后这个client_id的所有数据(onConnect/onMessage/onClose事件)都交给这个绑定的BusinessWorker进程处理。

期待该回调函数从所有到BusinessWorker进程的连接对象中选择一个并返回。


$worker_connnections=>是一个包含了所有到BusinessWorker进程的连接对象数组。

数组的下标是格式为ip:worker_name:worker_id的字符串。其中ip为worker所在服务器的ip,worker_name为$businessworker->name的值,worker_id为自动分配的进程id编号。这样通过下标就可以知道连接对应的worker在哪个服务器,属于哪组worker,进程编号是多少,可以方便的将消息路由给期望的服务器上的进程中去处理。

$client_connection=>客户端连接对象。

可以通过此对象获得客户端ip端口等信息,也可以向其添加一些动态属性用来保存当前连接的相关信息。

$cmd=>当前什么类型的消息,是个数字,分别可能为

CMD_ON_CONNECTION,即连接事件

CMD_ON_MESSAGE,即消息事件

CMD_ON_CLOSE,即客户端关闭事件

$buffer=>客户端发来的数据。

注意只有当 $cmd 为CMD_ON_MESSAGE时 $buffer才有值

返回 $worker_connnections 中的一个连接对象


转载请注明出处:http://gl.paea.cn/n.php?n=133
 
如您看得高兴,欢迎随意投喂,让我们坚持创作!
赞赏一个鸡腿
还没有人留下遗迹
综合 · 搜索