SSE 或长轮询共享主机上的实时通知?

SSE or long polling for real time notifications on shared hosting?

在共享主机服务器发送事件 (SSE) 或长轮询上实施实时通知的最佳方式是什么?

我看了一个视频,说 SSE 不适合共享主机、Apache 服务器,并且与 PHP 和 MySql 不兼容。

link the video

我只想知道哪种技术更适合在共享服务器上进行实时通知的长轮询或 SSE,我的服务器在 godaddy.com

请提供解释推荐技术的良好链接。

每个 SSE 连接都打开一个专用套接字。如果您使用的是 Apache 和 PHP,那么内存中也会有一个实例。他们坐在那里,占用内存,即使您从不向客户端发送任何数据。

共享主机的经济性依赖于大多数用户在大多数时间都没有加载服务器的想法。如果您开始在内存 all 中持有 apache 进程,您的 ISP 将四处杀掉这些进程。例如,BlueHost 似乎有一个自动 seeks-and-destroys long-running 处理的脚本;我想 GoDaddy 也有同样的东西。

除此之外,ISP 可能会在您的网站前面放置缓存代理服务器,这会干扰 SSE 和 long-poll。 (在这种情况下,您可以向代理发送特殊的 headers 以告诉它不要这样做。)

因此,没有技术原因 SSE 和 long-polling 不能与共享主机一起使用,但实际上您的 ISP 会试图阻止您。

你问题的另一部分,SSE和long-polling基本相同; SSE 给你一个 built-in JavaScript API,而且效率更高一点。当用户的浏览器支持时使用 SSE,否则编写您自己的 long-poll 例程。

如果您绑定到共享主机,我建议使用 short-polling(即每 15 或 30 秒调用一次 AJAX)。您增加了一点延迟,但节省了一点钱。