UserId undefined-socket io / node js

问题描述

我试图使用socket.io一段时间,但是在emit到客户端的数据中遇到了一些问题

代码运行正常,但是我在not defined上得到userId的{​​{1}}

client side

客户端

server.js 

const express = require('express')
const app = express()
const server = require('http').Server(app)
const io = require('socket.io')(server)
const { v4: uuidv4 } = require('uuid');

app.set('view engine','ejs')
app.use(express.static('public'))

app.get('/',(req,res) => {
    res.redirect(`/${uuidv4()}`)

})

app.get('/:room',res) => {
    res.render('room',{ roomId: req.params.room })
})

io.on('connection',socket => {
    socket.on('join-room',(roomId,userId) => {
        console.log(roomId,userId)
        socket.join(roomId)
        socket.to(roomId).broadcast.emit('connect',userId)
        console.log(userId)
    })
})

server.listen(3000)

这是错误

enter image description here

解决方法

如下所示更新服务器文件

io.on('connection',socket => {
    socket.on('join-room',(roomId,userId) => {
        console.log(roomId,userId)
        socket.join(roomId)
        socket.to(roomId).emit('connect',userId)
        console.log(userId)
    })
})