如何让服务器与客户端通信

时间:2011-12-24 18:40:29

标签: javascript client-server

我对网络开发很陌生,所以请原谅我的无知。

我想知道的是,是否有办法让服务器向客户端广播消息。这样的示例是具有新闻源的客户端页面,并且每当新故事进入服务器时,服务器将该信息发送到客户端并且客户端更新其页面的新闻源。我不希望客户端每隔几秒就不断地对服务器进行轮询,问“嘿,现在有新故事吗?现在怎么样?现在怎么样?”我希望客户端做自己的事情,然后被来自服务器的消息打断。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

对于较新的浏览器,您可以使用web sockets打开与服务器的连续连接,然后客户端/服务器可以随时发送彼此的消息。

对于较旧的浏览器,通常这样做的方式是客户端必须“轮询”服务器,以便在服务器有任何新消息的情况下定期询问服务器。由于防火墙,本地安全设置,未知位置等,服务器通常无法直接连接到客户端...因此客户端必须连接到服务器。轮询可以是常规种类,每隔60秒轮询一次ajax调用以询问是否有任何新内容,或者它可以更长时间的轮询,客户端询问是否有新内容,如果有新内容,服务器立即返回该数据。但是,没有什么新东西,服务器挂起轮询请求一段时间等待看是否有新的东西。最终,服务器将返回它什么都没有或者如果有的话返回新消息。当客户端获得响应时,它会再次启动“长轮询”序列。 Comet是库表单中“长轮询”的一个示例,可以更容易实现。

答案 1 :(得分:0)

Pusher是量身定做的 http://pusher.com/