有没有办法在事件发生时将消息从服务器发送到客户端

Is there a way to send a message from the server to client when an event happens?

本文关键字:消息 服务器 客户端 事件 有没有      更新时间:2023-09-26

可能的重复项:
实现服务器推送

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

如果可能,不使用 html5

你应该对

  • 服务器推送
  • 阿贾克斯长轮询/彗星

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

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

我能想到的唯一方法是尽可能长时间地保持对服务器的 AJAX 请求处于打开状态,然后在服务器上发生某些事情时写入连接。

如果 AJAX 请求超时,则必须重新启动它。

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