【问题标题】:node.js http server, detect when clients disconnectnode.js http服务器,检测客户端何时断开连接
【发布时间】:2011-09-28 04:35:25
【问题描述】:

我将 express 与 node.js 一起用于 http 服务器。我存储响应对象,以便可以将事件流式传输到该通道上的客户端。有没有办法检测客户端何时断开连接?当我杀死我的客户时,我仍然可以写入响应对象而不会出现任何异常/错误。只要我继续写入响应对象,服务似乎就会保持底层 tcp 通道打开。

【问题讨论】:

  • 你考虑过使用socket.io
  • res.connection.destroyed

标签: javascript http node.js


【解决方案1】:
req.on("close", function() {
  // request closed unexpectedly
});

req.on("end", function() {
  // request ended normally
});

【讨论】:

  • 很好,这对我来说也是新的 :)
  • @Alfred ._。你是阿尔弗雷德。我的意思是 Alfred 对你没有阅读 nodejs 文档感到羞耻。
  • 注意:'close' 可以在 'end' 之后触发,反之则不行。我糊涂了。结束后如何关闭发射器?我只能反其道而行之。用户断开连接,但例如对 mysql 的请求已经发送。
  • 当我们关闭 wifi 时,两者都不会发生。客户端显示已断开连接,但服务器仍连接在 peerjs 服务器中提供 unavailable-id
  • 在节点 12 close 事件最终被触发
【解决方案2】:
req.on("aborted", function() {
  // request aborted
});

http.IncomingMessage

aborted事件仅在客户端异常终止时触发;而close 会在异常终止和正常终止时触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多