使用webSockets避免Nagle算法效果的最佳方法

Best way to avoid Nagle algorithm effects using webSockets?

本文关键字:最佳 方法 算法 webSockets 避免 Nagle 使用      更新时间:2023-09-26

我正在使用webSockets使用java webSocket库将javascript webSocket客户端连接到java webSocketServer(来自Android应用程序)。安卓应用程序每隔几毫秒就会向javascript客户端发送一条小消息。

对于这种情况,使用基本的(直观的)方法,在javascript客户端内部测量的接收消息之间的延迟显示(大约)以下模式:200毫秒、0.1毫秒、0.1 ms、0.1 ms,0.1 ms、0.1ms、0.1ms、200ms、0.1ms。。。

这是Nagle算法的效果,默认情况下设置该算法,在发送消息之前先对多条消息进行聚集。

由于我还没有找到保证其停用的方法,我遵循了这个老问题中提出的方法,从客户端向服务器发送确认消息,系统运行正常,但由于确认消息没有真正的目的(它更像是一种黑客攻击),因此应该避免。

问题是,这一直是解决这个问题的最佳方案?你知道有什么方法可以避免结块吗?

谢谢。

由于所用库上似乎没有flush或setTCPNoDelay机制,也没有提出其他解决方案,因此确认消息解决方案似乎仍然是解决此问题的最佳方案。