2013-02-21 26 views
8

To jest mój kod:Słuchaj na inny adres IP

var server = express(); 

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

Gdy serwer został uruchomiony, w jaki sposób można dynamicznie zmieniać adres IP słuchał, powiadam 11.11.11.11 zamiast 10.10.10.10. Czy istnieje metoda "niepostrzeżona"?

+0

Co chcesz przez to osiągnąć? – robertklep

+0

@robertklep: Chcę zrestartować serwer z innym adresem IP bez zabicia procesu. – Randomblue

Odpowiedz

23

trzeba użyć server.close() nie 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') 
}) 
}) 

powinien działać

+0

Dzięki. Próbowałem go, a 'server.close' nie odłączy adresu' 127.0.0.1'. – Randomblue

+0

może są jakieś otwarte połączenia? zobacz http://nodejs.org/api/net.html#net_server_close_callback – supernova

+0

Nie. Dostaję nawet nieprzechwycony wyjątek '[Błąd: Nie uruchomiony]'. – Randomblue

0

co się chce osiągnąć jest dość nietypowe moim zdaniem. Sugerowałbym server.close(). Close czeka na wszystkie żądania, aby zakończyć i wywołać zdarzenie "zamknij". Możesz powiązać się z tym wydarzeniem, aby nasłuchiwać na nowym IP. To jest trochę dziwne.

+0

To nie działa z Expressem. 'Uncaught wyjątek! [TypeError: Object function app (req, res) {app.handle (req, res); } nie ma metody "zamknij"] ' – Randomblue