Twitter的流API是本质上是一个长时间运行的请求,该请求一直处于打开状态,数据在可用时被推送到其中。
其后果是服务器将必须能够处理许多并发的开放HTTP连接(每个客户端一个)。许多现有的服务器无法很好地管理该问题,例如Java
servlet引擎为每个请求分配一个线程,这可能(a)变得非常昂贵,并且(b)快速达到正常的最大线程设置并阻止了后续连接。
正如您猜到的那样,Node.js模型比Servlet模型更适合流连接的想法。请求和响应都在Node.js中作为流公开,但不会占用整个线程或进程,这意味着只要数据保持打开状态就可以继续将其推入流中,而不会占用过多的资源(尽管这样做是主观的)。从理论上讲,您可能有许多并发的打开响应连接到单个进程,并且仅在必要时才写入每个响应。
如果您还没有看过的话,那么Node.js的HTTP文档可能会有用。
我还将看一看technoweenie的Twitter客户端,以了解Node.js (特别是stream()函数)的 API的用户端是什么样子。



