Websocket vert.x sockJS实现延迟消息的发送

Websocket vert.x sockJS实现延迟消息的发送,websocket,sockjs,vert.x,Websocket,Sockjs,Vert.x,我们在websockets解决方案中使用vert.x sockJS实现。当vert.x在彼此之后快速发送一些消息时,一些消息将很晚到达客户端。延迟消息只有在心跳已发送时才会到达。你知道这怎么可能吗 我们通过将sockjssocket.write()方法放入一个同步块中暂时修复了这个问题,但这感觉有点像黑客攻击。我们之所以把它放在synchronized块中,是因为我们认为它与对套接字缓冲区的并行写入有关 亲切问候, Daan是在TCP之上实现的协议层 TCP有一些机制来优化网络性能,并允许可靠和

我们在websockets解决方案中使用vert.x sockJS实现。当vert.x在彼此之后快速发送一些消息时,一些消息将很晚到达客户端。延迟消息只有在心跳已发送时才会到达。你知道这怎么可能吗

我们通过将sockjssocket.write()方法放入一个同步块中暂时修复了这个问题,但这感觉有点像黑客攻击。我们之所以把它放在synchronized块中,是因为我们认为它与对套接字缓冲区的并行写入有关

亲切问候,


Daan是在TCP之上实现的协议层

TCP有一些机制来优化网络性能,并允许可靠和有序地交付流块。其中一个“优化”是,在满足要发送的数据包大小之前,它在网络层对小块数据进行排队,并且只在数据包足够大时发送

如果在vert.x中未禁用此算法,可能会发生什么情况。看起来像是指向您可以用来禁用它的实际设置

如果这没有帮助,您需要确保SockJS库不会为了“优化”目的“重新创建”相同的机制


该算法的目的是将较小的数据块组合起来,并作为一个数据包发送,从而减少每个数据块承载TCP报头的底层网络开销。如果你发送了很多小的邮件,请确保你对其进行了优化(合并你自己),因为最好发送更大的邮件。

“此”链接不再有效。你能更新你的答案吗?vertx.io看起来像是改变了的URL,更新了。顺便说一句,你可以更新自己。