2013-02-21 9 views
8

に聞く:私は動的に耳を傾けてIPアドレスを変更することができますどのようにサーバが起動された後これは私のコードで異なるIPアドレス

var server = express(); 

// Create the HTTP server 
http 
    .createServer(server) 
    .listen(80, '10.10.10.10'); 

11.11.11.11代わりの10.10.10.10に言います。 "unlisten"メソッドはありますか?

+0

を動作するはず? – robertklep

+0

@robertklep:プロセスを強制終了せずに、別のIPアドレスでサーバーを再起動したい。 – Randomblue

答えて

23
あなたがserver.closeを使用する必要が

()()app.closeない...

var express = require('express') 
    , http = require('http') 
    , app = express() 
    , server = http.createServer(app) 

app.get('/',function(req,res){ 
    ... 
}) 

server.listen(8000,'127.0.0.1',function(){ 
server.close(function(){ 
    server.listen(8001,'192.168.0.202') 
}) 
}) 

はあなたが達成しようとしているのは何

+0

ありがとうございます。私はそれを試しました、 'server.close'は' 127.0.0.1'アドレスのバインドを解除しません。 – Randomblue

+0

おそらく開いている接続がいくつかありますか? http://nodejs.org/api/net.html#net_server_close_callback – supernova

+0

Nopeを参照してください。私はキャッチされていない例外「[Error:Not running]」を取得します。 – Randomblue

1

私はあなたが探している「UNLISTEN」機能は、「近い」と呼ばれていると思う:http://nodejs.org/api/http.html#http_server_close_callback

+0

これはExpressでは動作しません。 'キャッチされない例外! [TypeError:オブジェクト関数app(req、res){app.handle(req、res); }にはメソッド 'close'がありません。] ' – Randomblue

0

あなたが達成しようとしている何が私の意見では、非常に非標準です。私はserver.close()を提案します。 Closeはすべての要求が完了するのを待ち、 "close"イベントをトリガーします。このイベントでバインドして、新しいIPで待機することができます。これは非常に奇妙なthoです。

+0

Expressでは動作しません。 'キャッチされない例外! [TypeError:オブジェクト関数app(req、res){app.handle(req、res); }メソッドがありません '閉じる'] ' – Randomblue

関連する問題