可能的重复项:
实现服务器推送
当服务器端发生某些事件时,我想向客户端发送一条消息,例如用户表被修改或类似的事情。事件发生时,服务器将其发送到客户端。我该如何实现?
如果可能,不使用 html5
你应该对
- 服务器推送
- 阿贾克斯长轮询/彗星
主要的"问题"是你的服务器需要"知道"用户的浏览器,要走的方法是在服务器和客户端之间保持长时间的连接打开。检查这个: http://jabberwocky.eu/2011/02/02/html5-pubsub-and-browser-push/
我知道你提到你想避开HTML5,但我建议最好的解决方案可能是在可用时利用HTML5技术,否则回退到长轮询或频繁轮询解决方案。查看HTML5 WebSockets API,它至少部分是为了这个目的而创建的。如果你对 Node.js 作为后端感到满意,Socket.IO 是一个很好的框架。
我能想到的唯一方法是尽可能长时间地保持对服务器的 AJAX 请求处于打开状态,然后在服务器上发生某些事情时写入连接。
如果 AJAX 请求超时,则必须重新启动它。
在浏览器方案中,服务器确实无法连接到客户端。