我可以在任何地方找到任何文档,并且想知道尽快发送多条消息的最佳方法是什么。
例如,如果我有 300 个设备从一台服务器接收消息,那么最好发送一条大消息并让设备挑选出它们需要的部分,或者发送 300 条消息,但大小为 1/300。它们只是很小的刺痛,因此 300 个设备每个只能获得 6 个字节
这有什么不同吗?
先谢谢了。
如果启用了套接字的 Nagle 算法,则通过给定连接发送多个较小的消息通常会比通过同一连接发送较少的较大消息慢。 Nagle 在内部缓冲出站数据,并且必须等待足够的数据被缓冲和/或超时,以便它可以发送有效的消息。对于一般套接字使用,通常首选启用 Nagle,因为它在速度、性能和开销之间提供了良好的平衡,大多数应用程序都可以接受。但如果您需要发送时间敏感的消息,那么您通常必须禁用 Nagle,以便尽快单独传输每条消息。
不过,您所描述的关于将一条消息发送到多个设备的内容对于 TCP 来说是不可能的。据推测,每个设备都有自己的直接与服务器的 TCP 连接。要将一条消息发送到所有 300 个连接,您必须制作该消息的 300 个独立副本,每个连接一个。 TCP 没有广播功能(如果需要,请切换到 UDP 或多播)。发送单个服务器消息并让 300 个设备响应的唯一方法是,设备不直接连接到服务器,而是通过代理进行通信,该代理维护与服务器的单个连接并将收到的服务器消息转发到每个设备根据需要设备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)