2011-12-18 7 views
1

J'ai mon code comme ci-dessous:node.js + express + socket.io avec ipv6?

var gzippo = require('gzippo'); 

var app = require('express').createServer() 
    , io = require('socket.io').listen(app); 

io.enable('browser client gzip'); 
io.set('transports', [ 
    'websocket' 
]); 

app.use(gzippo.staticGzip(__dirname + '/')); 

app.listen(8001); 

app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/main2.html'); 
}); 

io.sockets.on('connection', function (socket) {...}); 

J'utilise gzippo pour gzip, exprimer pour le serveur http, Socket.IO pour la fonction websocket.

Le code au-delà fonctionne maintenant correctement avec les demandes d'une adresse ipv4.

Alors, comment écouter une demande de mon adresse ipv6?

Répondre

2

Il semble que socket.io ne se connecte pas car il est impossible d'analyser url ipv6, cf https://github.com/LearnBoost/socket.io-client/issues/260

+0

J'ai essayé mon adresse ipv6 et il a échoué dans mon cas, que ce soit. Donc c'est un bug? – liuyanghejerry

+0

Seriez-vous capable de ce test, malheureusement, je n'ai pas de routeurs ipv6 - Code - 'var net = require ('net'); '' serveur var = net.createServer(); '' server.listen (1600, ':: 1'); ' et côté client ' socket var = io.connect(); ' Est-ce travail? –

+0

Je ne pense pas que ce soit possible. Puisque le code client est passé seulement quand il est déjà connecté dans mon code original, je n'ai aucun moyen de passer 'var socket = io.connect();' au client maintenant. – liuyanghejerry