Я создаю простое приложение socket.io с использованием React и Express и столкнулся с проблемой, когда у двух клиентов возникают проблемы с отправкой данных друг другу.
Например: Player 1 подключается к серверу, а затем Player 2.
Игрок 1 может получить приглашение от Игрока 2, но в противоположной ситуации нет. Тот, который подключается вторым к серверу, похоже, не получает приглашения.
Журнал консоли от Игрока 1:
Sending an invitation to player: 029bdef2-7f1b-43a0-9d3e-02ff79728a6e
Invitation from 029bdef2-7f1b-43a0-9d3e-02ff79728a6e
Журнал консоли от Игрока 2:
Sending an invitation to player: 83a594c4-4dae-47a2-90c4-339e1d55d287
Журналы с консоли сервера:
from: 2ad4f74f-ca78-4e96-80c6-9d3ff810681c
to:
beccb53f-3b8a-4ea6-994e-93eae19df715
from:
beccb53f-3b8a-4ea6-994e-93eae19df715
to:
2ad4f74f-ca78-4e96-80c6-9d3ff810681c
Код моего клиента:
invitationHandler = ({ id = null, socketId = null }) => {
console.log('Sending an invitation to player: ', id)
const { socket } = this.props
socket.emit(INVITATION, { id, socketId })
socket.on(INVITATION, ({ id }) => {
console.log('Invitation from ' + id)
})
}
Код сервера:
socket.on(INVITATION, ({ id = null, socketId = null }) => {
console.log('from: ')
console.log(socket.user.id)
console.log('to: ')
console.log(id)
socket.to(socketId).emit(INVITATION, { id: socket.user.id })
})