【发布时间】:2011-11-14 20:02:36
【问题描述】:
在 Node.JS 中是否有可能以这样的方式“删除”连接
- 客户端永远不会收到响应(200、404 或其他)
- 永远不会通知客户端连接已终止(永远不会收到连接重置或流结束)
- 服务器资源被释放(服务器不应尝试以任何方式保持连接)
我特别询问 Solaris 上的 Node.JS HTTP 服务器(实际上只是复杂的 TCP 服务器),但如果在其他操作系统(Windows、Linux)或编程语言(C/C++、Java)上存在这种情况,允许这个,我有兴趣。
我为什么要这个?
惹恼或减慢(可能是单线程)机器人,例如phpMyAdmin Probe。
我知道这并不重要,但这些类型的问题可以更好地帮助我了解我的程序的界限。
我知道客户端主机可能会重新传输连接的数据包,因为我从不发送重置。
【问题讨论】:
-
我不确定,但我认为你可以……不回应。如果您不使用 res.anything(),那么客户端将不会收到任何响应(200、400 等),也不会发送任何标头。
-
我不确定,但我认为这仍然会占用标记打开连接的操作系统资源,并最终耗尽内存或 TCP 端口。