CakePHP SSE或挂起来

时间:2012-04-23 22:03:17

标签: javascript cakephp push-notification long-polling

在试用新的网络应用程序期间,有一个服务器反馈请求,同时它正在执行certian任务,例如文档上的新协作者和注销等。

所以我实施了SSE(Sever-Sent Events),它工作正常,我们能够得到正确的反馈,并且在应用消息“ Growl Style ”中很好。

我的问题是:我是否真的应该使用 SSE 进行推送或者只是使用旧的挂机

从IT角度来看,SSE似乎没问题,但在某些任务期间,应用设置了rerty字段retry: 500,这样就增加了调用服务器的数量。

当我像推送通知一样使用Facebook时(挂起)我只会在没有检查的情况下得到反馈。

-

无关的详细信息

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

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

1 个答案:

答案 0 :(得分:2)

嗯,事实是:

  • SSE和Long Polling(“Hanging Get”)完成同样的事情 - 在服务器准备就绪时将数据从服务器推送到客户端。

  • 长轮询requires a hack来实施。 SSE没有。

  • Long Polling适用于所有现代网络浏览器。 SSE适用于大多数现代浏览器的较新版本,但does not work in any version of Internet Explorer(撰写本文时为IE9)。

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

由于您的案例是新网络应用的试用版,您似乎希望支持尽可能多的浏览器,因此请使用Long Polling。您还在问题中提到Long Polling无论如何都会降低服务器的负载,所以这里有额外的好处。