2015-05-06 38 views
1

基本上,我想知道如何更改我的server.js代碼以使其能夠與IPv6協同工作?我在某處讀到,你只需要將它的IPv6地址放在它所說的「listen(80)」旁邊,這會使它看起來像這樣「listen(80,」IPv6「);」如何在IPv6中使用Node.js?

但是,在我的代碼中,它比這更復雜一點。

下面是有關服務器的代碼行:然後測試它

http = require('http') 

server = http.createServer() 
server.listen(8080, '::', function() { 
    console.log('listener'); 
}); 

const 

server = http.createServer(options, app), 
        . 
        . 
        . 
var ss=tls.createServer(options, function (box) { 
    box.setEncoding('utf8'); 
        . 
        . 


     ss.listen(8010); 
       . 
       . 


var sockets = require('socket.io').listen(server).of('/el'); 
        . 
        . 
        . 
if (!module.parent) { 
    server.listen(port, function() { 
    console.log('Listening', this.address()); 
    }) 
} 

回答

2

這個作品在這裏

$ telnet ::1 8080 
Trying ::1... 
Connected to ::1. 
Escape character is '^]'. 
+0

我能夠使它發揮作用通過添加這兩行代碼: var v6 = require('ipv6')。v6; var address = new v6.Address('MY IPv6 Address'); 它運行良好,但隨後出於無處,我再也無法再訪問它了。可能是什麼問題呢? –

+0

你能提供更多信息嗎?就像用新代碼更新問題一樣,或者可能關閉此問題並打開另一個問題? –

+0

綁定到'::'的套接字可以同時接收IPv4和IPv6連接。但是,這取決於套接字選項。 – kasperd