有一个应用程序需要向一堆客户端发送消息。客户端是用户计算机上的应用程序,这些应用程序有时一次运行数天。服务器要么有新的指令,要么没有。有时两条新指令之间有 10 分钟的间隔,有时是一小时,有时是一天。消息是固定长度的。
实现这一点的最佳方法是什么?我应该让客户端每 10 秒轮询一次服务器吗?每次新客户端连接时我是否应该在服务器上创建一个新线程,并保持连接直到有新指令,然后将其发送给客户端并让客户端创建一个新连接?
还是我应该将消息推送给客户?我正在考虑如何做到这一点,我想出了这个:服务器服务器既是服务器又是客户端。当客户端握手时,它会将其地址提供给服务器。然后,服务器开始充当客户端(显然,还充当服务器以使其他客户端能够连接),并与客户端保持连接。客户端就像服务器一样,等待消息。
最后一个似乎相当复杂。做这个的最好方式是什么?来自服务器的新消息(“指令”)应该在服务器“拥有”它们之后至少 15 秒到达客户端。
顺便说一下,服务器应用程序将在 Windows 上运行。我不确定的客户,但让我们假设多平台。服务器和客户端应用程序都是用 Python 编写的。
谢谢你的时间。