这段代码在Socket.IO“入门”页面上:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
为什么我需要将app
作为参数传递给http
?我不能像下面的代码块那样省略http
吗?有什么区别吗?
var app = require('express')();
var io = require('socket.io')(app);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
app.listen(3000, function(){
console.log('listening on *:3000');
});
我是否需要将HTTP服务器传递给Socket.IO实例?另外,如果我不使用app.listen
会发生什么? io.on
代码不能正常工作吗?