Closed. This question needs to be more focused 。它目前不接受答案。












想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。

4年前关闭。



Improve this question




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

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

link the video

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

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

最佳答案

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

共享主机的经济性依赖于大多数用户大部分时间都不会加载服务器的想法。如果您一直将 apache 进程保存在内存中,您的 ISP 将四处杀死这些进程。例如,BlueHost 似乎有一个脚本可以自动查找和销毁长时间运行的进程;我在想象 GoDaddy 也有同样的情况。

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

因此,没有技术原因 SSE 和长轮询不能用于共享主机,但实际上您的 ISP 会试图阻止您。

对于你问题的另一部分,SSE和长轮询基本相同; SSE 为您提供了一个内置的 JavaScript API,并且效率更高。当用户的浏览器支持时使用 SSE,否则编写您自己的长轮询例程。

如果您使用共享主机,我建议您使用短轮询(即每 15 或 30 秒进行一次 AJAX 调用)。您增加了一点延迟,但节省了一点钱。

关于php - SSE 或长轮询以获取共享主机上的实时通知?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28007796/

10-13 00:59