2012-09-21 74 views
2

我試圖執行這個腳本:Node.JS:重新使用套接字?

require('net').createServer().listen('/tmp/test'); 

第一次腳本運行成功,但在第二次創業的Node.js拋出錯誤:錯誤:聽EADDRINUSE

有什麼辦法重用插座(也是unix和tcp)?

回答

0

呵呵?

節點已經在監聽'tmp/test',它將如何再次監聽它?

就像你不能允許兩個應用程序在一個端口上監聽一樣,SOCKET也是如此。一個人只能被一個人允許。

+2

其實你可以。與SO_REUSEPORT [1]一樣,這就是Node.js集羣模塊如何工作以實現負載平衡。 [1] - https://lwn.net/Articles/542629/ –

1

顯然你的腳本/偵聽/服務器從第一個調用仍在運行。您必須殺掉正在偵聽的腳本/進程才能再次使用相同的端口。

+0

即使節點不再運行,也會出現此錯誤,只要手動刪除Unix域套接字 – Perseids