当我从同一台电脑连接 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])