ErreBefeLandia
miƩrcoles, 2 de mayo de 2012
miƩrcoles, 29 de febrero de 2012
how to make connect and socket.io listen on the same port.
On previous versions of connect this could be done using:
var connect = require('connect');
var sys = require('util');
var http = require('http');
var io = require('socket.io');
var server = connect(
connect.cookieParser()
,connect.session({secret:'approves', cookie:{maxAge:3600000}, store:memoryStore})
,connect.favicon()
,everyauth.middleware()
,connect.static(__dirname+'/www')
,function(req, res){
//nothing to do here!
});
io = io.listen(server);
server.listen(8081);
and it would allow socket.io to answer on requests with a url /socket.io/....
but after a recent npm update this code stopped working.
currently:
name: connect,
version: 2.0.0
var connect = require('connect');
var sys = require('util');
var http = require('http');
var io = require('socket.io');
var server = connect(
connect.cookieParser()
,connect.session({secret:'approves', cookie:{maxAge:3600000}, store:memoryStore})
,connect.favicon()
,everyauth.middleware()
,connect.static(__dirname+'/www')
,function(req, res){
//nothing to do here!
});
io = io.listen(server);
server.listen(8081);
and it would allow socket.io to answer on requests with a url /socket.io/....
but after a recent npm update this code stopped working.
currently:
name: connect,
version: 2.0.0
name: socket.io
version: 0.9.0
requests using the previously written code doesnt allow socket.io to hijack requests addressed to its url.
It has to be done exactly in this order:
var connect = require('connect');
var sys = require('util');
var http = require('http');
var io = require('socket.io');
var server = connect()
.use(function(req, res){
console.log('serving!' + req.url);
res.end('nothing');
});
var httpServer = http.createServer(server);
io = io.listen(httpServer);
httpServer.listen(8080);
If you do it this way, it will continue to work as expected serving the socket.io/socket.io.js
Suscribirse a:
Comentarios (Atom)
