我从未理解以下代码是如何相同的:
代码1:
var app = require("express")();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
...
io.use(...);
...
server.listen(3000, function(){});
代码2:
var app = require("express")().listen(3000);
var io = require("socket.io")(app);
...
io.use(...);
代码3:
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);
...
io.use(...);
...
server.listen(3000, function(){});
你能帮我理解这里发生了什么吗?并且一种方法优于另一种方法(以及在什么情况下)?感谢。
答案 0 :(得分:0)
这些片段并不相同。有些是旧版本的express和socket.io,有些是较新版本。我会使用socket.io documentation中的修改示例。
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
/* Setup Express */
app.get('/', function (req, res) {
...
});
/* Setup Socket.io */
io.on('connection', function (socket) {
...
});
server.listen(3000);
Express现在只公开一个传递给http服务器的处理函数app
。 Socket.io希望你传递一个http服务器来插入它。