【问题标题】:Listen to Socket.io server after require在 require 后监听 Socket.io 服务器
【发布时间】:2021-02-28 21:48:45
【问题描述】:

当我在 require 之后立即激活 io 服务器时,它工作正常,但是当我想要在 require 之后执行时,我的代码在与 io 的第一次交互时出错(在我的例子中定义中间件) .

这工作正常:

const io = require('socket.io').listen(3002);

const { authValidation } = require('./middlewares');

//Middlewares
io.use(authValidation);
. . .

这个报错:

const io = require('socket.io');

const { authValidation } = require('./middlewares');

io.listen(3002, () => {
  console.log(`Listening to port 3002`);
});

//Middlewares
io.use(authValidation);
. . .

错误表明io.use() 不是函数。我认为存在与代码执行流程和异步内容有关的问题,但我不能说具体是什么。

【问题讨论】:

    标签: javascript node.js asynchronous socket.io


    【解决方案1】:

    也许试试这个?我有一段时间没有和socket.io 合作了,但我记得是这样的。

    不同之处在于将io 设置为listen 方法的返回值。

    const socket = require('socket.io');
    
    const { authValidation } = require('./middlewares');
    
    const io = socket.listen(3002, () => {
      console.log(`Listening to port 3002`);
    });
    
    //Middlewares
    io.use(authValidation);
    

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 2021-11-10
      • 2021-10-29
      • 2016-12-25
      相关资源
      最近更新 更多