gpt4 book ai didi

javascript - CakePHP SSE 或 Hanging Get

转载 作者:行者123 更新时间:2023-11-29 22:24:42 25 4
gpt4 key购买 nike

在试用新网络应用程序期间,服务器正在执行某些任务,例如新协作者处理文档和注销等,请求服务器提供反馈。

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

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

从 IT 的 Angular 来看,SSE 似乎没问题,但在某些任务 期间,应用程序设置了 rterty 字段 retry: 500 因此这增加了对服务器的调用次数.

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

-

无关的细节

*我们现在不想使用网络套接字。我已经实现了这个,但应用程序不会经常需要这个。

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

最佳答案

嗯,事实是:

  • SSE 和长轮询(“Hanging Get”)完成相同的事情——在服务器就绪时将数据从服务器推送到客户端。

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

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

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

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

关于javascript - CakePHP SSE 或 Hanging Get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com