почему firefox не выдает после подключения (клиентская сторона)
Моя игра работает с другими браузерами, но с Firefox, есть одна небольшая, но важная проблема. Почему firefox не выдает сообщение "new-player" после подключения сокета, другие браузеры работают нормально, все браузеры выводят HELLO на консоль...и зарегистрируйте их сами.
const newPlayer = (socket, player) => {
socket.on('connect', () => {
console.log("HELLO this row appears in all browsers");
socket.emit('new-player', {
x: player.sprite.body.x,
y: player.sprite.body.y,
angle: player.sprite.rotation,
playerName: {
name: String(socket.id),
x: player.playerName.x,
y: player.playerName.y
},
speed: {
value: player.speed,
x: player.speed.x,
y: player.speed.y
}
})
})
}
export default newPlayer
Проблема на стороне сервера: сообщение нового игрока не получено с firefox, другие браузеры в порядке:
io.on('connection', socket => { // When a player connects
socket.on('new-player', state => {
console.log(socket.id+'New player joined with state:', state)
players[socket.id] = state //stones[socket.id] = state
// Emit the update-players method in the client side
io.emit('update-players', players) //io.emit('update-stones', stones) })
// note the following invalid move command occurs on firefox see logs
socket.on('move-player', data => {
// If the player is invalid, return
if (players[socket.id] === undefined) {
console.log(socket.id+' invalid move')
return
}
Вывод сервера с firefox:
> [nodemon] 1.14.10 [nodemon] to restart at any time, enter `rs`
> [nodemon] watching: *.* [nodemon] starting `babel-node
> server/index.js` Game server running on: 8000 O14Q_E5LXJi3oYmGAAAA
> invalid move O14Q_E5LXJi3oYmGAAAA invalid move O14Q_E5LXJi3oYmGAAAA
> invalid move O14Q_E5LXJi3oYmGAAAA invalid move O14Q_E5LXJi3oYmGAAAA
> invalid move
Вывод сервера с помощью браузера CHROME или если сервер перезапуск (пока firefox остается открытым, игра на экране)
> nodemon server/index.js --exec babel-node
[nodemon] 1.14.10
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `babel-node server/index.js`
Game server running on: 8000
55e5xgecEJ-QX_MqAAAANew player joined with state: { x: 2164.6852111816406,
y: 298.809814453125,
angle: 0,
playerName:
{ name: '55e5xgecEJ-QX_MqAAAA',
x: 2162.938232421875,
y: 298.80773544311523 },
speed: { value: 105 } }
1 ответ:
Кажется, это заставляет его работать
const newPlayer = (socket, player) => { socket.on('connect', () => { console.log("do nothing here actually, just log "+socket); }) socket.emit('new-player', { x: player.sprite.body.x, y: player.sprite.body.y, angle: player.sprite.rotation, playerName: { name: String(socket.id), x: player.playerName.x, y: player.playerName.y }, speed: { value: player.speed, x: player.speed.x, y: player.speed.y } }) } export default newPlayer