2012-03-27 36 views
5

我试图在Node.js中实现一个http长轮询服务器,并且不知道如何在达到超时时关闭/关闭挂起的请求。node.js中的长轮询 - 如果没有数据可用,如何'超时'挂起的请求?

3级可能的解决方案来我的脑海:

  1. 商店pendingRequest与哈希/对象时间戳,然后调用setIntervall,让每一个1/2/X秒的pendingRequests是如果时间戳删除太旧了。
  2. 设置套接字连接

这两种解决方案似乎并不十分合理,所以这将是Node.js的方式来实现像这样的超时?

回答

5

为什么这些听起来不合理?特别是,在插座上设置超时似乎是有道理的我,如:

  1. 有一个built-in method for doing so
  2. 事件被触发时连接超时,让你做任何必要的清理(如在插座上拨打end/destroy

我可能会走这条路线,以便Node处理幕后的超时;但是,如果它对您的应用程序有意义,我不认为保留时间戳和手动过期连接会造成任何伤害。

你可能有兴趣在这些文章中,每个以不同方式处理即将到期的连接: