2013-02-21 15 views
8

को सुनें यह मेरा कोड है:एक अलग आईपी पते

var server = express(); 

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

एक बार सर्वर शुरू कर दिया गया है, कैसे मैं गतिशील सुनी आईपी पते बदल सकते हैं, 11.11.11.11 बजाय 10.10.10.10 को कहते हैं। क्या कोई "असूचीबद्ध" विधि है?

+0

काम करना चाहिए आप पूरा करने के लिए कोशिश कर रहे हैं? – robertklep

+0

@robertklep: मैं प्रक्रिया को मारने के बिना सर्वर को एक अलग आईपी पते के साथ पुनरारंभ करना चाहता हूं। – 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

नहीं देखें। मुझे एक अपवाद अपवाद भी मिलता है '[त्रुटि: नहीं चल रहा] '। – Randomblue

1

मुझे लगता है कि "unlisten" समारोह आप देख रहे हैं "बंद" कहा जाता है: http://nodejs.org/api/http.html#http_server_close_callback

+0

यह एक्सप्रेस के साथ काम नहीं करता है। अपवाद अपवाद! [TypeError: ऑब्जेक्ट फ़ंक्शन ऐप (req, res) {app.handle (req, res); } में कोई विधि 'करीबी' नहीं है] ' – Randomblue

0

क्या आपके पूरा करने के लिए कोशिश कर रहे हैं मेरी राय में काफी गैर मानक है। मैं server.close() का सुझाव दूंगा। बंद करने के लिए सभी अनुरोधों को समाप्त करने और "करीबी" घटना को ट्रिगर करने का इंतजार होगा। आप नए आईपी पर सुनने के लिए उस घटना पर बाध्य कर सकते हैं। यह काफी अजीब था।

+0

यह एक्सप्रेस के साथ काम नहीं करता है। अपवाद अपवाद! [TypeError: ऑब्जेक्ट फ़ंक्शन ऐप (req, res) {app.handle (req, res); } में कोई विधि 'करीबी' नहीं है] ' – Randomblue

संबंधित मुद्दे