连接在node.js中与response.end丢失
我使用node.js有多个客户端。 现在,在我的代码中,我正在监听一个端口,每次客户端连接时,我都想向所有其他客户端发送广播消息。 每当有新的客户连接时,我都会提出一个新的事件,我正在向他发送一个响应。 当我说response.end(),我不能发送任何东西到特定的客户端。 但是,浏览器不断加载并等待响应。 反正有没有使用socket.io? 我知道socket.io有它的用途,但我真的想知道,如果我可以做到这一点没有socket.io。
我会说在你的客户端使用两个渠道; 一个接收更新(频道保持打开状态,或频繁查询更新),另一个更新数据。 它涉及到一些重组客户端和服务器的工作,但是我认为使用两个通道是解决问题的最简单的方法。
如果您不发送.end(),浏览器将继续等待。 但是,如果closures频道,您将无法通过它发送任何内容。 所以,要么使用socket.io,要么通过XHR打开一个通道,并保持打开,以便每个客户端接收消息。 是由你来充分框架消息(实现你的应用程序协议)。 我认为保罗是对的。
尝试长时间轮询,这意味着让浏览器发出一个“挂起”请求,直到服务器发送回来。
我如何实现基本的“长轮询”?
使用nodejs,您可以轻松地为客户端存储响应对象。
- 在Sequelize事务中使用循环和promise
- async.series和async.each不按预期方式工作
- Zombie.js不会返回完整的HTML
- 为什么用“ – ”(短划线)给Babelify上的“Gulp”给出“意外的标记错误”?
- 用jadevariables追加环境variables
- Express js post方法错误地读取编码的数据
- 对大多数请求使用socket.io是不是很好,或者我应该只用它来将数据推送到客户端?
- 为什么可以传递一个非函数参数给Promise.then()而不会导致错误?
- 在meteor中找不到模块“../../client/components/layouts/home.jsx”