在gateway上,我定时调用 Gateway:sendToClient() 发送一个带有服务器时间前缀的随机字符串给某个客户端,通过客户端接收到的打印来看,存在某个时间段客户端没有任何打印数据,,过后又能一次性打印出前面几分钟服务器发来的数据。请问这是服务器下发有延时和粘包吗?如果有可能,服务端从哪里打印更直观看到发出去的那一刻时间呢?
服务器向客户端发送数据的格式为:Y.m.d_H:i:s_xxxxxxxxx
下面是我服务端在调用 Gateway:sendToClient() 时记录的log:
a、
b、
c、
客户端的打印:
客户端在05:08分钟、05:12分钟没有打印,而在16分钟的时候的打印是 08、12、16分钟服务器发来的数据的拼接字符串
发送完之后,可以写代码看时间
我在调用sendToClient时加了时间打印,不过框架内部更底层的我就不清除在哪加了
你可以抓包,看下什么时候发出去的。
有可能客户端代码哪里阻塞了或者其它原因没有及时从socket缓冲区读消息,导致多个消息积压在缓冲区,然后客户端又一次性全部读出来了。