Мне нужно отправить данные на сервер nodejs через socket.io, когда пользователь закрывает вкладку браузера.испускание данных через сокет в браузере закрыть/закрыть окно
Я пытался делать:
var data={};
window.onbeforeunload = function() {
// i have a object to be sent
data.data1='abcd';
data.data2=1234;
socket.emit("senddata",data);
}
Этот код работает, когда пользователь перемещается вокруг нажатия ссылки на сайте, но оленья кожа работа, когда пользователь закрывает вкладку браузера
Я также попытался настройки сокета Io на на сторону сервера, как показано ниже .. думать об ошибке может быть связана с розеткой соединения закрывается перед тем, излучающими данными:
var io = require('socket.io').listen(app.listen(port));
io.configure(function() {
io.set('close timeout',12000);
});
Он также не работал большая часть т он время.
Я также попытался это на стороне клиента:
var socket = require('socket.io').listen(80, {
"sync disconnect on unload":false
});
Он также не работает
Я пытался получать данные как этот
var io = require('socket.io').listen(app.listen(port));
io.sockets.on('connection', function (socket) {
socket.on('senddata', function (data) {
// data processing
});
});
пожалуйста ..help мне с этой проблемой ..thanks заранее ..
спасибо за ответ, но у меня есть объект данных, который будет отправлен .. это был просто пример .. извините, мой пример был вводящим в заблуждение..и изменили вопрос снова ... – righteouspratik
Нет надежного способа сделать это так как существует множество реализаций браузера, а также сценарии закрытия соединения. Спецификация WebSockets также не указывает на это. – moka