【问题标题】:php server sent events chat application behaves like pollingphp 服务器发送事件聊天应用程序的行为类似于轮询
【发布时间】:2019-12-04 08:50:27
【问题描述】:

我已经开始研究 SSE,我发现了一个 php 聊天应用程序的示例 (http://www.developphp.com/video/JavaScript/Server-Sent-Events-Simple-Chat-Application-Example)。 视频显示消息没有延迟。但是当我在我自己的服务器 (WAMP) 上尝试该示例时,我延迟了很长时间,以至于它不再像它声称的那样是一个实时应用程序。我发现如果我将 retry:15000 更改为一个小得多的值(例如 100 毫秒),那么只有接近实时。但这并不好。这是轮询而不是真正的实时应用程序。似乎在每条消息之后,与服务器的连接都会丢失并相应地重置以重试。它看起来不是一个非常智能的应用程序,因为我们没有避免像普通的 Ajax 轮询那样从客户端到服务器的不断请求。 谢谢

【问题讨论】:

  • 您在您的本地网络服务器上尝试过吗?也许您的托管有问题。
  • 是的,WAMP 驻留在我的电脑上
  • 重试值您可以设置为 500 (0.5 s) - 他们使用 15000 因为某些共享主机有限制。但我认为最好设置一秒钟。
  • 感谢您的回复,但我对 SSE 很感兴趣。然而,似乎与人们认为的相反,SSE 最终会导致轮询,因此它是无用的。除非我必须对我不知道的示例进行更改。在日志中,我有连续的连接和断开连接,但 SSE 文档明确提到了永久连接!!!

标签: php polling server-sent-events


【解决方案1】:

似乎我们必须对服务器端代码进行无限循环,以保持连接仅通过一个请求打开。但这没有任何意义,因为我们再次转向旧的普通投票!!或者我们必须编写同步的代码来等待每次迭代中的某些内容,例如,对于这个特定的示例,更新 chat.txt 文件。

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 2012-11-06
    • 2012-03-12
    • 2011-07-15
    • 2015-12-17
    • 2012-06-08
    • 2015-08-18
    • 2011-01-26
    • 2013-08-14
    相关资源
    最近更新 更多