|
|
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Имеется WebSocket Server Java. Есть два клиента: iOS и Android. Как обстоит дело на Android (Chrome): Клиент подключается к сокету, срабатывает событие onOpen, на сообщения onMessage. При закрытии вкладки корректно срабатывает сообщение onClose. Как обстоит дело на iOS (Chrome): Клиент подключается к сокету, срабатывает событие onOpen, на сообщения onMessage. И вот тут начинается веселье. Если я закрою вкладку браузера, то события onClose не будет (хотя по логике вещей должно быть). Далее. Я создаю новую вкладку в браузере. Ввожу первый символ url адреса и я тут же наблюдаю onClose который вытекает в onError ибо что-то уже null. Ну и "переподключение" к сокету. Вопрос. как сиё чудо Apple починить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 17:52 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopВопрос. как сиё чудо Apple починить? Никак, не чинить, это нормальное поведения для веба. Попробуй клиенту на Android просто вырубить интернет - например, выдерни роутер w-fi из розетки - получишь то же самое поведение. Пиши обработчик на событие onClose с учетом этой специфики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 18:23 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopИмеется WebSocket Server Java.что за сервер? TsyklopКлиент подключается к сокету, срабатывает событие onOpen, на сообщения onMessageкакая-то лажа. onOpen срабатывает на подключение, а не на onMessage. что-то у тебя с ws не то.... https://learn.javascript.ru/websockets ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 22:53 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичНикак, не чинить, это нормальное поведения для веба. Попробуй клиенту на Android просто вырубить интернет - например, выдерни роутер w-fi из розетки - получишь то же самое поведение. Пиши обработчик на событие onClose с учетом этой специфики. При аварийных выключениях согласен - такое везде. Но я сейчас за мою ситуацию. И это не нормально. Почему на Android все хорошо, а на Apple лажа? кто криворукий? Сомневаюсь что я ибо я пользуюсь тем что готово давно, да и не только я использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 23:55 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадячто за сервер? Java EE Tomcat 9. вадякакая-то лажа. onOpen срабатывает на подключение, а не на onMessage. что-то у тебя с ws не то.... https://learn.javascript.ru/websockets onOpen срабатывает на подключение, а onMessage когда приходят сообщения от сервера. Было бы не то с ws или не тот ws не работало. Ибо это встроено в браузер и изменить я не могу (может и можно но я хз как да и не особо нужно). Использую тот же ws что и по ссылке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 23:58 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, нпдо аккуратнее с формулировкаии в других браузерах, кроме хрома, на яблоках так же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:27 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklop, нпдо аккуратнее с формулировкаии в других браузерах, кроме хрома, на яблоках так же? в других не тестил, но мне кажется что так же будет. apple все таки. у них свои правила для всех и сафари не исключение. Но я попробую. Но если уж в самом хроме такая беда то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:30 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, где ты наблюдаешь ошибку? в хроме на яблоке? на сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:30 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, покажи полный код ws. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:35 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, onClose это сообщение о том , что другая сторона закрыла ws. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:38 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklop, где ты наблюдаешь ошибку? в хроме на яблоке? на сервере? наблюдаю срабатывание события onError на сервере ну и эксепшн. в хроме на телефоне я ошибку никак не могу увидеть ибо там нет консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:45 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklop, покажи полный код ws. Обычный ServerEndpoint из javax.websocket-api. Тут больше дело не в сервере, а в клиенте на телефоне который инициализирует разрыв соединения. Ведь на андроиде то все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:46 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklop, onClose это сообщение о том , что другая сторона закрыла ws. Да. У меня логика такая что при onClose я удаляю юзера из списка подключенных пользователей к ws. иначе они будут накапливаться и накапливаться что приведет к утечке памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 01:48 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopнаблюдаю срабатывание события onError на сервере ну и эксепшнэто не показатель ошибки , это серверная часть. должно быть только onClose. Tsyklopв хроме на телефоне я ошибку никак не могу увидеть ибо там нет консоли.откой для себя десктопный хром и его возможности - можно увидеть всю подноготную работы хрома на телефоне TsyklopДа. У меня логика такая что при onClose я удаляю юзера из списка подключенных пользователей к ws. иначе они будут накапливаться и накапливаться что приведет к утечке памяти.покажи код onClose. сделай пошаговую отладку в onClose. TsyklopЕсли я закрою вкладку браузера, то события onClose не будекак ты это проверил? то, что у тебя работает с андроид не говорит о том , что нет события onClose для яблока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 06:47 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopВвожу первый символ url адреса и я тут же наблюдаю onClose который вытекает в onError ибо что-то уже null. TsyklopУ меня логика такая что при onClose я удаляю юзера из списка подключенных пользователей к wsскорее всего у тебя из списка уже удалён юзер, и ты его повторно удаляешь - вот и ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 06:51 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, я не дурачок и пишу логи при каждом событии ws на сервере. И когда происходит onClose я это отчетливо вижу. Вот держи: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 10:13 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяоткой для себя десктопный хром и его возможности - можно увидеть всю подноготную работы хрома на телефоне с Андроидом так делал, да. Но для iOS нужен макбук или macOs - у меня ни того, ни того нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 10:15 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадякак ты это проверил? то, что у тебя работает с андроид не говорит о том , что нет события onClose для яблока. Вижу логи сервера. У меня сервер всегда пишет логи и по ним видно то что я описал в топике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 10:16 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяэто не показатель ошибки , это серверная часть. должно быть только onClose. Ну так срабатывает onClose когда ввожу первый символ и там что-то уже null и срабатывает onError. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 10:16 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, что пишет LOGGER.info("ENDPOINT ONCLOSE - "+closeReason.getCloseCode()); и LOGGER.error("ENDPOINT ERROR", ex.getMessage()); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:11 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяLOGGER.info("ENDPOINT ONCLOSE - "+closeReason.getCloseCode()); Код: java 1. вадяLOGGER.error("ENDPOINT ERROR", ex.getMessage()); Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:38 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, еще вот такое: CloseReason: code [1003], reason [] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:43 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
http://qaru.site/questions/151831/getting-the-reason-why-websockets-closed-with-close-code-1006 Tsyklop CloseReason: code [1003], reason [] Код: plaintext 1. 2. 3. subprotocol используешь? я так делаю Код: javascript 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:59 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, попробуй на событие Код: javascript 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 12:12 |
|
||
|
|

start [/forum/search_topic.php?author=%D0%9F%D1%80%D0%BE%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D0%B9_2014&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
33ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 443ms |
| total: | 668ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...