socket.io 无法在 2 台计算机上的 Heroku 服务器上运行

时间:2021-01-05 16:34:42

标签: node.js reactjs heroku socket.io

当我从同一台电脑连接 2 个用户时,我的代码工作正常,但是当 2 个用户尝试从不同的电脑通信时,socket.io 无法连接。

我的服务器:

const express = require('express');
const app = express();
const server = require('http').createServer(app)
const io = require('socket.io')(server);

io.on('connection', socket => {
    const id = socket.handshake.query.id
    socket.join(id)

    socket.on('send-message', ({ conversationRec, senderName, text }) => {
         io.emit('receive-message', { conversationRec, senderName, senderId: id, text })
    })
})

const PORT = process.env.PORT || 5000;
server.listen(PORT, () => console.log(`Server is on port ${PORT}`))

客户:

 useEffect(() => {
    const newSocket = io(
        'https://herokuapp.com/',
        { query: { id } }
    )
    setSocket(newSocket)

    return () => newSocket.close()
}, [id])

0 个答案:

没有答案
相关问题