2013-02-21 6 views
8

Dies ist mein Code:Hören Sie eine andere IP-Adresse

var server = express(); 

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

Sobald der Server gestartet wurde, wie kann ich dynamisch die IP-Adresse zugehört ändern, sagen zu 11.11.11.11 statt 10.10.10.10. Gibt es eine "unlisten" -Methode?

+0

arbeiten sollten, was Sie erreichen wollen? – robertklep

+0

@robertklep: Ich möchte den Server mit einer anderen IP-Adresse neu starten, ohne den Prozess zu beenden. – Randomblue

Antwort

23

Sie haben server.close() verwenden app.close nicht() ..

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

Danke. Ich habe es versucht, und "server.close" wird die Adresse "127.0.0.1" nicht lösen. – Randomblue

+0

vielleicht gibt es einige offene Verbindungen? siehe http://nodejs.org/api/net.html#net_server_close_callback – supernova

+0

Nein. Ich bekomme sogar eine nicht abgefangene Ausnahme "[Fehler: Nicht ausgeführt]". – Randomblue

0

Was ist Ihr versuchen, ist ganz Nicht-Standard meiner Meinung nach zu erreichen. Ich würde vorschlagen, server.close(). Schließen wartet auf alle Anforderungen, um das Ereignis "close" zu beenden und auszulösen. Sie können an diesem Ereignis binden, um die neue IP zu hören. Das ist ziemlich komisch.

+0

Das funktioniert nicht mit Express. 'Uncaught Ausnahme! [TypeError: Objektfunktion app (req, res) {app.handle (req, res); } hat keine Methode 'schließen'] ' – Randomblue

Verwandte Themen