2014-09-19 2 views
0

Я в настоящее время сталкивается проблему с помощью Atmosphere Framework Grails плагин, который является в основном реализация Java и Javascript из атмосферы, но мой вопрос определенно имеем дело с JS (https://github.com/Atmosphere/atmosphere-javascript)Atmosphere Framework Disconnect

Я поражая roadblock в настоящее время, когда происходит отключение, и в то время как это больше проблема в мобильных браузерах, у настольных браузеров иногда возникают проблемы. Мы получаем ошибку «сломанной рамки», которая гласит:

WebSocket connection to '{URL}' failed: Received a broken close frame containing a reserved status code. 

Это происходит, когда интернет прерывается по какой-либо причине на любом устройстве. Wi-Fi, 3g/4g, что угодно. Единственный браузер, который, похоже, справляется с этим, - это Firefox, и даже это прикосновение и выход. В настоящее время у нас есть взломщик, чтобы попытаться подключить клиентов к сокету, и он работает достаточно прилично на настольных компьютерах, но не очень хорошо работает на мобильных устройствах. В библиотеке указано, что эта функциональность должна быть встроена, но она не кажется функциональной, и я не могу найти много онлайн, которая говорит о переподключении к сокету, который был закрыт из-за перехвата соединения.

Итак, наконец-то мой вопрос. Я хочу знать, как другие, которые используют эту инфраструктуру, обрабатывают интернет-прерывания в браузерах, в частности Chrome, Safari и IE. Любая помощь будет оценена по достоинству.

+0

Какой плагин вы используете, [атмосфера] (https://grails.org/plugins/atmosphere) или [атмосфера-метеорит] (https://grails.org/plugins/atmosphere-meteor)? Я автор атмосферы-метеора, и я попробую помочь вам. – Ken

+0

Мы используем Atmosphere Meteor с JS/Java из кода jfarcand. Нам удалось решить ряд проблем до сих пор, но возникают проблемы с получением сокетов, которые не мгновенно вымирают, когда сотовый телефон теряет соединение Wi-Fi и свопит к 3g/4g, а затем обратно в Wi-Fi. – Sinistralis

+0

В настоящее время мы находимся в состоянии, когда каждое второе повторное соединение оставляет нас с гнездом, который получает сердцебиение, но на самом деле не передает сообщения. (Мы подозреваем, что предыдущий сокет получает назначение до того, как он закрыт, и клиент остается думать, что он подключен, но нет). – Sinistralis

ответ

1

Я добавил свои комментарии к ответу, но вы должны проверить this thread. Кажется, это связано с вашей проблемой.

Я предлагаю задать ваш вопрос в Atmosphere Group, поскольку он, вероятно, связан с каркасом, а не с плагином. Я разработчик хобби, и я не проводил много мобильных тестов. Может быть, проблема с базовым HttpSession? Сохраняет ли телефон один и тот же JSESSIONID по сети? Вы упомянули, что вам пришлось решить несколько проблем. Я ищу способы улучшить плагин, поэтому, пожалуйста, create an issue с вашими предложениями.

Вы также можете создать один или несколько wiki pages с уроками. Я добавлю ссылки на README при следующем обновлении плагина.

+0

Я только что получил поручение об обновлении нашего проекта с 0.7.0 до 1.0.3, и я просто хотел быстро бросить его и поблагодарить за вашу документацию. Совместимость с плагином (а не с каркасом, плагином) была легкой и заняла у меня минуты. Продолжайте в том же духе. Особенно отметим, как получить конфигурацию, когда вы изменили contextHolder. – Sinistralis