gatewayworker的 Gateway::sendToUid($senduid,json_encode($data));发送消息会有不稳定性!??
当硬件用tcp协议而前端用websocket时为何Gateway::sendToUid($senduid,json_encode($data))发送数据是不稳定的(不稳定是指我已经走到这一步了var_dump($senduid)是有数据的 但是我硬件那边是接收不到这个指令 前端从新链接再发送指令就有可能接收到 或者没有那只有重新链接 再发送 就有可能接收到了 注:这期间是没有任何报错的而且$senduid是一直有数据的)!
所以我想问是不是我的问题还是说这个也会存在一定的问题呢? 因为已经到了最后一步!!!!
2个回答
年代过于久远,无法发表回答
我们有用gatewayworker做硬件通讯,而且是几万的设备线量,可以说gatewayWorker很稳定。
我觉得你首先应该是怀疑业务问题,详细记录日志,每一步操作都详细记录,包括client_id uid。
比如有没有运行到bindUid,uid和clientid是否正确,是否真的运行到了sendToUid,uid参数是否正确,数据是否不为空。检查一个设备是否重复调用了bindUid导致uid被覆盖。还要抓包看是否发送了数据给硬件,因为也有可能发送了数据但是硬件没响应。等等。
为什么没有握手成功在onmessge里也可以接收到websocket发过来的消息?大佬回答一下 我就是没有握手成功 然后onmessge可以接收到消息 然后到 Gateway::sendToUid($senduid,json_encode($data));的时候我在硬件没有看到消息然后总是误以为这个地方出错了