Gateway::sendToClient($client_id, $message_str) 客户端收不到消息。

andy

用socket 在客户端和 服务器之间 进行交互。onConnect的时候,向客户端发送消息,可以收到。

但是,当onMessage 的时候 ,使用同样的方法,客户端收不到消息。
虽然客户端收不到服务器消息,但是服务器可以收到客户端发送过来的消息。

$data_arr = [123, 0, 0, 0, 0, 93, 238, 85, 249, 0, 139, 0, 5, 1, 1, 0, 0, 2, 168, 123];

//-把数组转成字符串发送给客户端。
$message_str = self::$received_data-getStr($data_arr);

Events::logging(__FUNCTION__,__LINE__,"client_connect:($client_id,$message_str)");

Gateway::sendToClient($client_id, $message_str);
2593 5 0
5个回答

xiuwang

发之前记录下客户端是否在线,Gateway::isOnline($client_id),连接断了不在线就收不到。或者根本没运行到 Gateway::sendToClient($client_id, $message_str); 也有可能。

muyu

可能性很多,先检测是否是同一个client_id,然后检测是否在线,也不排除没有调用sendToClient,接着检测缓冲区是否满了!

  • 暂无评论
andy

客户端肯定在线。是不是跟 businessworker 为 none 有关。

  • muyu 2019-12-10

    BusinessWorker本身不监听!

  • andy 2019-12-10

    好的。谢谢。

andy


登录的时候收到了,其他返回的消息全都收不到。奇怪了啊。。 大佬们有知道 的吗?请赐教。。

andy

问题已经查明,服务器发送到客户端了。客户端做了拦截。谢谢。大佬们的指点。

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