连接在node.js中与response.end一起丢失

时间:2011-07-25 20:14:43

标签: javascript node.js socket.io response.write

我正在使用node.js来拥有多个客户端。现在,在我的代码中,我正在侦听一个端口,每次客户端连接时,我想向所有其他客户端发送广播消息,比如说。每次有新客户连接时,我都会举办一个新活动,我正在向他发送回复。当我说response.end()时,我之后无法向该特定客户端发送任何内容。但是,浏览器会继续加载并等待response.end。 反正这个没有使用socket.io? 我知道socket.io有它的用途,但我真的想知道如果没有socket.io就能做到。

3 个答案:

答案 0 :(得分:0)

我想在你的客户端使用两个频道;一个用于接收更新(通道保持打开,或经常查询更新),另一个用于刷新数据。它涉及到您重组客户端和服务器的一些工作,但我认为使用两个渠道是解决问题的最简洁方法。

答案 1 :(得分:0)

如果您不发送.end(),浏览器将继续等待。但是如果你关闭频道,你将无法通过它发送任何内容。因此,要么使用socket.io,要么通过XHR打开一个通道,并让每个客户端保持打开以接收消息。尽管如此,由您自己来充分构建消息(实现您的应用协议)。我认为保罗是对的。

答案 2 :(得分:0)

尝试长轮询,这意味着让浏览器的ajax请求“挂起”,直到服务器可以发回一些内容。

How do I implement basic "Long Polling"?

使用nodejs,您可以轻松地为客户端存储响应对象。