php 服务器发送的事件聊天应用程序的行为类似于轮询

php server sent events chat application behaves like polling

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

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