2011-08-12 29 views

回答

59

要聽你想使用的net.server類Node.js的傳入連接。

創建此類實例的標準方法是使用net.createServer(...)函數。一旦你有了這個類的實例,你可以使用server.listen(...)函數來告訴服務器在哪裏實際收聽。

如果listen的第一個參數是一個數字,那麼nodejs將使用該端口號在TCP/IP套接字上偵聽。但是,如果listen的第一個參數是一個字符串,那麼服務器對象將在該路徑的Unix套接字上偵聽。

var net = require('net'); 

// This server listens on a Unix socket at /var/run/mysocket 
var unixServer = net.createServer(function(client) { 
    // Do something with the client connection 
}); 
unixServer.listen('/var/run/mysocket'); 

// This server listens on TCP/IP port 1234 
var tcpServer = net.createServer(function(client) { 
    // Do something with the client connection 
}); 
tcpServer.listen(1234); 
+0

是否可以使用子進程和socket.io來建立與客戶端進行通信的連接使用這種方法的服務器端應用程序?是否需要新的端口/路徑才能維持1對1客戶端與應用程序的關係? – tremor

+2

這是正確的答案。 – tgies

+5

對於那些想知道的,你可以用[express 4.x](https://expressjs.com)來做到這一點!因爲'app.listen' [基本上是一個輔助函數](https://expressjs.com/en/4x/api.html#app.listen),執行'app.listen(「/ var/run/mysocket」) '同樣有效。 –