2011-08-12 6 views

答えて

19

はい。それはドキュメントにあります。あなたがnet.serverクラスを使用したいのNode.jsでの着信接続をリッスンするために

https://nodejs.org/api/net.html#net_server_listen_path_backlog_callback

+0

ok、申し訳ありませんが、私はcreateServerを見ていた – Luc

+1

これはとても奇妙です。私はこの質問をしようとしていた。 – Malvolio

+9

これは間違っています。 'socket.connect(...)'は聞きません。 node.js v0.5.4に戻っても、 'net.server'クラスが存在し、TCP/IPまたはUnixソケットをリッスンする' server.listen(...) '関数を持っています。私の答えを見てください。 – joshperry

59

このクラスのインスタンスを作成する標準的な方法は、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'は' app.listen( "/ var/run/mysocket")を実行して[基本的にヘルパー関数](https://expressjs.com/en/4x/api.html#app.listen) 'と同様に有効です。 –

関連する問題