繁体   English   中英

如何使用node.js发送“ FIN”?

[英]How to send the 'FIN' with node.js?

更新:我在此代码中逐一添加了所有(到99%)的可能性之后,在这里发布了此代码,但它仍然给了我120秒的超时时间……...住了。


因此,好吧,我发现在Windows 7计算机上,要开始FIN握手之前,它只需要120秒(好,就是122秒)。 我要立即做。 HTTP RFC793

FIN:没有来自发件人的更多数据

在我看来,我不再发送任何数据。 我尝试了所有这些肿的代码,仍然是Hello World服务器...

var http = require('http')
var server = http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'})
    res.write('HELLO WORLD!\n')
    res.end()
    res.setTimeout(0)
    req.abort()     // 1) TypeError: Object #<IncomingMessage> has no method 'abort'

    req.on('socket', function (socket) {
        socket.setTimeout(0)  
        socket.on('timeout', function() {
            req.abort()
        })
    })
})
server.timeout = 0
server.setTimeout(0)
server.listen(1337, '192.168.0.101')
  1. 那么如何做1)? (实际上发送这样的RST ...)
  2. 以及如何使整个HTTP符合要求?
    当然,最后我会很幸运地在websocket内容中使用nodejs ,但如果在我的网站上进行转换意味着两分钟的时间,并且我有100万并发用户(呵呵),立即发送FIN可能表示我有200万并发用户(进行数学计算)。 ;)好的,可以肯定的是:发送FIN表示套接字已关闭?

  3. 嗯,嗯,好的,既然您打开了,我该如何console.log(res)console.log(req) 它给了我[object Object] (更新:我尝试console.log(res.toSource()) ,给我TypeError吗?
    编辑:这里找到答案。

如果要关闭连接,请发送一个connection: close标头。 如果执行此操作,则它将不会保持连接打开以供重用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM