为什么我需要将express实例传递给http?

时间:2019-01-01 04:45:48

标签: javascript node.js sockets http socket.io

这段代码在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代码不能正常工作吗?

0 个答案:

没有答案