workerman 如何给指定的用户发送信息 如A发送给B 而不是群发信息,如何来识别A用户或者B用户

小小葵花
4468 6 0
6个回答

walkor

可以参考聊天室的代码,有单聊的功能

  • 暂无评论
小小葵花

能大概跟我讲一下,到底怎么来做吗?

  • 暂无评论
walkor

A给B发消息时,客户端发送消息array(type=>单聊,msg=>消息内容, to_client_id=>B的client_id)给服务端,服务端onMessage收到消息后根据type判断是单聊,通过to_client_id知道是给谁发,
服务端调用Gateway::sendToClient($B的client_id, $消息内容);发给B就好了

细节参考聊天室代码

  • 暂无评论
小小葵花

我根据你说的用了“聊天室的代码”,然后Gateway::sendToClient($B的client_id, $消息内容);发送不了给单个用户,我是用谷歌游览器的 console 来发送指令的,群聊的信息能接收到,但是就是Gateway::sendToClient方法的信息就接收不到
[attach]135[/attach]

[attach]137[/attach]

[attach]136[/attach]

  • 暂无评论
walkor

每行都打印下日志,看哪里和预期打印不符,还有看client_id是否正确。
业务逻辑问题只能靠自己了

  • 暂无评论
小小葵花

我都过了一遍,还是不行,我也检查了发送到的用户在不在线的,也显示在线的,可是就是发送不给他,我我检查,唯一一个有问题的,就是JSON转成数组后,数组就会后面有重复的内容显示
[attach]141[/attach]

  • 暂无评论
年代过于久远,无法发表回答
🔝