Как восстановить связь с атмосферой, когда пользователь отменяет закрытие окна браузера
Наше приложение использует атмосферу в качестве кометной реализации, мы хотим реализовать функциональность, которую пользователь может выбрать, чтобы оставаться на сайте после закрытия окна браузера, предлагая пользователю диалоговое окно "Вы уверены".
Точнее говоря, проблема возникает из-за того, что когда пользователь пытается закрыть окно браузера, когда отображается диалоговое окно подтверждения, событие отключения происходит на сервере атмосферы, независимо от того, какой пользователь выберет.
Мы используем атмосферу для GWT, и мы попытались использовать параметр resumeOnBroadcast on resource, но безуспешно.
И мы также пытались перехватить событие закрытия до того, как оно сработало, также не удалось.
Так что кто-то может помочь, спасибо большое.
2 ответа
Посмотрите на onClose(AtmosphereResponse)
обработчик запросов.
var socket = $.atmosphere;
var request = new $.atmosphere.AtmosphereRequest();
request.onClose(response){
//handle the close here
}
var subSocket = socket.subscribe(request);
subSocket.push(data);
Это задокументировано здесь. Это на стороне клиента.
Посмотрите эту ссылку, возможно, ответ, который вы ищете,
Восстановление состояния AtmosphereResource между переподключением https://github.com/Atmosphere/atmosphere/wiki/Recovering-AtmosphereResource-State-between-reconnection