Столкнулся с такой странностью.
Простая на клиенте вещь, вот такие две строчки:
window.addEventListener('beforeunload', function() {
sendMessage(room);
});
Содержание функции простое, можно было так написать -
socket.emit('message', room)
Решил опробовать WebRTC, а мне обязательно нужно на сервере считать количество клиентов в "комнатах", для чего есть объектик, в котором имя комнаты - ключ, и его значение - массив со случайными id присоединившихся к ней. Предполагается, что если клиент уходит (закрывает окно), то и нужно отправить имя комнаты, из которой он ушел, чтобы отнять элемент из соответствующего массива.
Я всё это дело сделал дома, и на localhost это всё нормально работает. Решил попробовать, так сказать, "в эфире" - выпросил 14 дней бесплатного VPS, залил туда всё, запустил... ... - а нет этого события, месадж не отправляется, сервер ничего не получает при закрытии окна. Количество присоединившихся к комнатам в массивы плюсуется, а при уходе - не уменьшается, естественно.
Повторю: на localhost всё работает. Я уже и в пяти вариациях это писал, и во всех на локалхосте работает, а ровно то же самое в энторнетах - нет события, нет сообщения, сервер ничего не получает.
Есть этому хоть какое-то объяснение?