【问题标题】:SSE or long polling for real time notifications on shared hosting? [closed]SSE 或长轮询以获取共享主机上的实时通知? [关闭]
【发布时间】:2015-01-18 06:41:31
【问题描述】:

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

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

link the video

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

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

【问题讨论】:

  • 欢迎来到 SO。请让你的问题更清楚。至少我不明白你的问题是什么。
  • 这个问题有点基于选项,有点宽泛。通常,每个连接(您想要向其发送实时事件的用户)生成一个进程的设置不会很好地扩展。无论您是保持进程处于活动状态(长轮询、sse、websocket ......)还是进行轮询。

标签: php mysql long-polling shared-hosting server-sent-events


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    相关资源
    最近更新 更多