【问题标题】:express and socket.io - declaration and starting serverexpress 和 socket.io - 声明和启动服务器
【发布时间】:2014-11-01 18:15:07
【问题描述】:

我一直不明白下面的代码是如何等效的:

代码 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(){});

你能帮我理解这里发生了什么吗?一种方法是否优于另一种方法(以及在什么情况下)?谢谢。

【问题讨论】:

    标签: node.js express socket.io middleware


    【解决方案1】:

    sn-ps 不等价。有些来自 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 现在只公开一个处理函数app,您将它传递给一个http 服务器。 Socket.io 期望您向它传递一个 http 服务器以供其插入。

    【讨论】:

    猜你喜欢
    • 2012-12-19
    • 2017-04-11
    • 2012-03-19
    • 2018-07-17
    • 1970-01-01
    • 2016-11-08
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多