这个问题似乎在网上被仿佛提到,但我查了包括stackoverflow上的许多帖子,还是无法排除400 求指点~~!!
用的是Express 3.3.4 + socket.io 0.9.16 Server端写为
app.js
.... var app = express(); var server = require('http').createServer(app).listen(app.get('port')); var io = require('socket.io').listen(server); app.set('port', process.env.PORT || 3000); .... app.get('/find', function (req, res){ finder.test(req, res,io); }) ...
find.js
exports.test = function(req,res,io){
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log('socket.io log');
console.log(data);
});
});
res.render('page'); }
.... page.jade
.... script(src='/socket.io/socket.io.js') script. var tokens = location.href.split('/'); var url = tokens[0]+'//'+tokens[2]; var socket = io.connect(url); socket.on('news',function(data){ console.log(data);
socket.emit('my other event',{my:'data'});
})
....
得到的客户端错误。。 GET http://localhost:3000/socket.io/socket.io.js 400 (Bad Request) Uncaught ReferenceError: io is not defined
真诚求助~~~