我正在使用webSockets使用Java-WebSocket库将javascript webSocket客户端连接到java webSocketServer(来自Android应用程序)。 Android应用程序每隔几毫秒向javascript客户端发送一条小消息。
对于这种情况使用基本(和直观)方法,在javascript客户端内部测量的接收消息之间的延迟显示(近似地)以下模式: 200 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,200 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,0.1 ms,200 ms,0.1 ms,0.1 ms ,0.1 ms,0.1 ms,0.1 ms,0.1 ms ......
这是Nagle算法的效果,默认设置,在发送之前聚集几条消息。
由于我还没有找到保证其停用的方法,我遵循this旧问题中提出的方法,从客户端向服务器发送确认消息,系统行为正常,但自从确认消息没有真正的目的(它更像是一个黑客),应该避免。
问题是,这仍是这个问题的最佳解决方案吗?你知道有什么方法可以避免聚集吗?
谢谢。
答案 0 :(得分:2)
由于在使用的库中似乎没有flush或setTCPNoDelay机制,并且没有提出其他解决方案,似乎确认消息解决方案仍然有效,是此问题的最佳解决方案。