2

在新 Web 应用程序试运行期间,服务器请求反馈,同时它正在执行某些任务,例如文档上的新协作者和注销等。

所以我实现了 SSE(服务器发送事件),它运行良好,我们能够在应用程序消息“咆哮式”中获得正确的反馈和良好的反馈。

我的问题是:我真的应该使用SSE进行推送还是只是使用旧的Hanging Get

从 IT 的角度来看,SSE 似乎很好,但在某些任务期间,应用程序设置了 rerty 字段retry: 500,因此这增加了对服务器的调用次数。

当我使用 Facebook 之类的推送通知(Hanging Get)时,我只会在不检查的情况下得到反馈。

-

无关细节

*我们目前不想使用网络套接字。我已经实现了这一点,但该应用程序不需要经常这样做。

随时使用 SSE 或 Polling 对我来说并不难,因为我有一个接口,我实现了一个名为 PushService() 的抽象类;所以我可以随时在 SSEService 和 PollService 之间交换 *

4

1 回答 1

2

好吧,事实是:

  • SSE 和长轮询(“Hanging Get”)完成同样的事情——当服务器准备好时,将数据从服务器推送到客户端。

  • 长轮询需要 hack来实现。上证所没有。

  • 长轮询适用于所有现代网络浏览器。SSE 适用于大多数现代浏览器的较新版本,但不适用于任何版本的 Internet Explorer(在撰写本文时最高为 IE9)。

鉴于这些事实,这两者之间的决定似乎很明确。如果您需要支持 Internet Explorer 或更早版本的其他浏览器(例如,大多数面向公众的应用程序),请使用长轮询。如果您知道您永远不需要支持这些浏览器(例如,某些内部应用程序,如公司管理界面),请使用 SSE。

由于您的案例是新 Web 应用程序的试点,您可能希望支持尽可能多的浏览器,因此请使用 Long Polling。您还在问题中提到,长轮询无论如何都会减少服务器上的负载,所以这是一个额外的好处。

于 2012-04-23T22:15:58.777 回答