4

我有一个桌面客户端应用程序,它使用简单的 HTTP 帖子通过 REST API 与服务器应用程序对话。我目前让客户端每 X 分钟轮询一次,但我希望更频繁地刷新数据。是否可以让服务器通知客户端任何新数据,或者这超出了 HTTP 服务器的意图范围?任何关于解决此问题的最佳方法的想法将不胜感激。谢谢!

4

2 回答 2

3

您可能需要检查以下 Stack Overflow 帖子的已接受答案,该帖子通过一个非常基本的示例描述了如何在服务器端使用 php实现长轮询:

使用长轮询时,您的客户端应用程序会以无限超时(或非常长的超时)启动对 HTTP 服务器的请求。现在只要有新数据可用,服务器就会找到一个准备好的活动连接,因此它可以立即推送数据。在传统轮询中,您必须等到应用程序启动新的轮询,再加上网络延迟才能到达服务器,然后再发送新数据。

然后在发送数据时,连接关闭,但您的应用程序应立即打开一个新连接,以便不断打开与服务器的连接。实际上,在没有活动连接的地方会有一个非常小的间隙,但这在许多应用程序中通常可以忽略不计。

于 2010-01-26T03:17:54.917 回答
1

如果您在服务器端保持 HTTP 连接打开,那么您可以在有更新时发送数据,然后刷新连接以实际发送数据。如果需要数万个连接,这可能会导致 TCP/IP 堆栈出现问题。

于 2010-01-26T03:16:41.020 回答