【问题标题】:Is there a way to send a message from the server to client when an event happens? [duplicate]有没有办法在事件发生时从服务器向客户端发送消息? [复制]
【发布时间】:2012-06-20 13:05:25
【问题描述】:

可能重复:
Implementing Server Push

我想在服务器端发生某些事件时从 php 到 javascript 向客户端发送消息,例如修改用户表或类似的事情。当事件发生时,服务器将其发送给客户端。我该如何实现呢?

如果可能不使用 html5

【问题讨论】:

  • 您必须使用 Ajax 以预定义的时间间隔检查服务器脚本。
  • 您要发送电子邮件还是只发送简单的消息。
  • 在 HTML5 中可以使用 Web 套接字。

标签: php javascript


【解决方案1】:

你应该有更深入的研究

  • 服务器推送
  • Ajax 长轮询/彗星

主要的“问题”是您的服务器需要“了解”用户浏览器,afaik 的方法是保持服务器和客户端之间的长时间连接打开。检查这个:http://jabberwocky.eu/2011/02/02/html5-pubsub-and-browser-push/

【讨论】:

    【解决方案2】:

    我知道您提到您想避开 HTML5,但我建议最好的解决方案可能是在可用时利用 HTML5 技术,否则回退到长轮询或频繁轮询解决方案。查看HTML5 WebSockets API,它至少部分是为了这个目的而创建的。如果您对 Node.js 作为后端感到满意,Socket.IO 是一个很棒的框架。

    【讨论】:

      【解决方案3】:

      我认为实现此目的的唯一方法是尽可能长时间地打开对服务器的 AJAX 请求,然后在服务器上发生某些事情时写入连接。

      如果 AJAX 请求超时,您将不得不重新启动它。

      在浏览器场景中,服务器确实无法连接到客户端。

      【讨论】:

        猜你喜欢
        • 2015-06-20
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多