【问题标题】:TypeError: Cannot read property 'emit' of undefined in socketTypeError:无法读取套接字中未定义的属性“发射”
【发布时间】:2021-12-04 06:50:47
【问题描述】:
io.on('connection', (socket) => {
    
    var ip = socket.client.request.headers['x-forwarded-for'] || socket.client.conn.remoteAddress || socket.conn.remoteAddress || socket.request.connection.remoteAddress;
    console.log(ip)
    console.log('user ket noi ' + clients)
    clients++

    //io.emit("new msg", { msg: `Hiện tại có ${clients} đang kết nối !!` });    
    io.broadcast.emit("new msg", { msg: `Hiện tại có ${clients} đang kết nối !!` });    


    socket.on('on-chat', data => {
    io.emit('user-chat', data)
})
    
}) 

文件 index.js ,我不能使用 io.broadcast.emit 但我可以使用 io.emit 我该如何解决;(我是新手

cmd中的错误

C:\Users\Admin\Documents\heroku\Chat-real-time\index.js:34 io.broadcast.emit("new msg", { msg: Hiện tại có ${clients} đang kết nối !! }); ^

TypeError:无法读取未定义的属性“发射” 在命名空间。 (C:\Users\Admin\Documents\heroku\Chat-real-time\index.js:34:15) 在 Namespace.emit (events.js:400:28) 在 Namespace.emitReserved (C:\Users\Admin\Documents\heroku\Chat-real-time\node_modules\socket.io\dist\typed-events.js:56:22) 在 C:\Users\Admin\Documents\heroku\Chat-real-time\node_modules\socket.io\dist\namespace.js:141:26 在 processTicksAndRejections (internal/process/task_queues.js:77:11) [nodemon] 应用程序崩溃 - 启动前等待文件更改...

【问题讨论】:

    标签: node.js


    【解决方案1】:

    要广播,您需要从套接字实例而不是 io 实例调用它。所以应该是:

    socket.broadcast.emit()
    

    您可以在socket.io docs 中阅读有关发射事件的更多信息

    【讨论】:

      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多