同个用户id登录到多个系统如A、B、C,现在要求A发的消息只能A用户收到,B发的消息只能B用户收到 但是通过bindUid($client_id,$uid),只能根据$uid绑定,$uid在A、B、C系统间是相同的,请问有什么好的方法解决吗?
可以利用分组功能,Gateway::joinGroup($client_id, A); 然后通过Gateway::sendToGroup(A);向某个分组发送数据,一个clientid可以加入多个分组。 见手册 http://www.workerman.net/gatewaydoc/gateway-worker-development/join-group.html http://www.workerman.net/gatewaydoc/gateway-worker-development/send-to-group.html
场景: 用户1登录到系统A,系统B 用户2也登录到系统A,系统B 现在 用户1 给 用户2 发消息 在A系统发的只能A系统用户2能收到 在B系统发的只能B系统用户2能收到
其实就是多个系统要对接到workerman, 怎么保证不同系统的用户之间发的消息互相独立,不影像其他系统 怎么解决啊?
利用分组,上面给你连接了。
或者部署多套GatewayWorker也行
@1:利用你说的分组,这样同个系统其他用户都可以收到了,那怎么分别是同一个用户呢?
也可以用Gateway::joinGroup做
也可以用Gateway::joinGroup做,组里就一个用户连接
@1:多谢了,joinGroup还是不太理解,我在,$uid上拼上不同系统id,发时也加上系统id就可以了
其实变通一下,给uid加个前缀就行了
可以利用分组功能,Gateway::joinGroup($client_id, A);
然后通过Gateway::sendToGroup(A);向某个分组发送数据,一个clientid可以加入多个分组。
见手册
http://www.workerman.net/gatewaydoc/gateway-worker-development/join-group.html
http://www.workerman.net/gatewaydoc/gateway-worker-development/send-to-group.html
场景:
用户1登录到系统A,系统B
用户2也登录到系统A,系统B
现在 用户1 给 用户2 发消息
在A系统发的只能A系统用户2能收到
在B系统发的只能B系统用户2能收到
其实就是多个系统要对接到workerman,
怎么保证不同系统的用户之间发的消息互相独立,不影像其他系统
怎么解决啊?
利用分组,上面给你连接了。
或者部署多套GatewayWorker也行
@1:利用你说的分组,这样同个系统其他用户都可以收到了,那怎么分别是同一个用户呢?
也可以用Gateway::joinGroup做
也可以用Gateway::joinGroup做,组里就一个用户连接
@1:多谢了,joinGroup还是不太理解,我在,$uid上拼上不同系统id,发时也加上系统id就可以了
其实变通一下,给uid加个前缀就行了