此实现之间是否有任何区别:
this.app = express();
this.httpServer = http.createServer(this.app);
this.io = socket.listen(this.httpServer);
这一个:
this.app = express();
this.server = http.createServer(this.app);
this.io = socket(this.server);
答案 0 :(得分:0)
Nopers,第二个是速记。 :)
如果您要从快速架构导入/导出该功能,则提供第一个
似乎你的另一个问题是在此之后发布的,这仍然是相关的吗?
好的,让我们看看我做过的工作。我把我的套接字分成了一个配置文件,因为我的app.js变得杂乱无章。
app.use(express.static(path.join(__dirname, '/')));
app.use(express.static(path.join(__dirname, '/node_modules/')));
var clients = {};
var server = http.createServer(app);
var io = require('socket.io')(server);
require('./config/app.socket.js')(io);
server.listen(8001);
io.set("origins", "*:*");
所以,我删除了中间人并将服务器直接传递给socket.io import。然后,我将对io服务器的引用传递给我的app.socket.js文件并在端口8001上侦听服务器
这是我的app.socket.js初始化
module.exports = function(io){
var clients = {};
var sockets;
io.on('connection', function (socket) {
sockets = socket;
socket.on(//your socket function)
}