2 years ago

#384913

test-img

silhuhon

TypeError: Cannot read properties of undefined (reading 'emit')

I'm trying to use sockets to create a real time video chat application.

This is my server.js code:

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', (req, 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('user-connected', userId)
    })
})


server.listen(3000)

This is the error that I get:

TypeError: Cannot read properties of undefined (reading 'emit')
    at Socket.<anonymous> (C:\Users\desktop\Desktop\videochat\server.js:22:36)
    at Socket.emit (node:events:520:28)
    at Socket.emitUntyped (C:\Users\desktop\Desktop\videochat\node_modules\socket.io\dist\typed-events.js:69:22)
    at C:\Users\desktop\Desktop\videochat\node_modules\socket.io\dist\socket.js:466:39
    at processTicksAndRejections (node:internal/process/task_queues:78:11)

How can I fix this?

node.js

sockets

socket.io

0 Answers

Your Answer

Accepted video resources