簡體   English   中英

由於活動連接,Node.js server.close()無法關閉

[英]Node.js server.close() won't close due to active connection

我試圖在關閉應用程序之前顯示一些信息。 因此,我創建了一個事件,該事件將在服務器收到SIGINT時觸發。 如果未建立任何連接,此代碼將起作用。 但是,如果存在連接localhost:4040 ,則服務器將永遠不會關閉,因為服務器認為仍然有活動的連接(連接計數為1)。 我不了解的部分是為什么Node.js在請求已經完成時仍然認為存在活動連接。 有什么方法可以終止連接,或者我當前關閉請求的方法有誤?

這是我要完成的代碼:

var http = require('http')

var server = http.createServer(function(req, res){
  res.end('test');    
}).listen(4040);

process.on( 'SIGINT', function(){
  server.getConnections(function(err, count){
    console.log('connection:' + count);
  })

  server.close(function(){
    process.exit();
  });
})

我有一些想法:

  1. 保存我收到的套接字副本並分別關閉

希望有人能給我一些解決這個問題的建議。

  1. 存儲您擁有的所有套接字並手動關閉它們
  2. 使用process.exit()並銷毀整個過程
  3. 使用域並執行一個可怕的不推薦使用的域。dispose()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM