我有一个桌面客户端应用程序,它使用简单的HTTP帖子通过REST API与服务器应用程序通信。我目前每隔X分钟对客户端进行一次轮询,但我希望更频繁地刷新数据。是否可以让服务器通知客户端任何新数据,或者是否超出HTTP服务器的范围?任何关于最佳方法的想法都将非常感激。谢谢!
答案 0 :(得分:3)
您可能需要检查以下Stack Overflow帖子的已接受答案,该帖子以一个非常基本的示例描述如何在服务器端使用php实现Long Polling:
使用长轮询时,您的客户端应用程序会向HTTP服务器发起一个请求,该请求具有无限超时(或非常长的超时)。现在,只要有新数据,服务器就会找到准备好的活动连接,因此它可以立即推送数据。在传统轮询中,您必须等到应用程序启动新轮询,再加上在发送新数据之前到达服务器的网络延迟。
然后,当发送数据时,连接将关闭,但您的应用程序应立即打开一个新连接,以便始终与服务器建立连接。实际上,如果没有活动连接,将会有一个很小的差距,但在许多应用中这通常可以忽略不计。
答案 1 :(得分:1)
如果您在服务器端打开HTTP连接,则可以在发生更新时发送数据,然后刷新连接以实际发送数据。如果需要数万个连接,这可能会导致TCP / IP堆栈出现问题。