|
|
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, надо думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 14:21 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадя, надо думать.мыло в профиле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 14:26 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадямыло в профиле... на почту написать? если что скайп мой alucid2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 14:28 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 22:28 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 04:05 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, судя по моим логам - яблочники не закрывают ws, а происходит обрыв. и на сервере появляется ошибка onError. потом следует событие на сервере onClose. ты на onError делаешь disconnectUser("", session); а потом и на onClose disconnectUser(closeReason.toString(), session); моё мнение , что на onError этого disconnectUser("", session); делать не следует у меня такого нет и кроме обрабатываемой ошибки обрыва все работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 04:41 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет. Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 20:23 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадя, Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет. Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный.надо отделить мух от котлет для этого надо что-то сделать, то что ты считаешь надо не факт что это верно - у меня без этого счетчик изменяется. проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 21:46 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадядля этого надо что-то сделать, то что ты считаешь надо не факт что это верно - у меня без этого счетчик изменяется. проверь.переведи фразу. Он как то корректнее и аргументированнее выше тебе ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 07:38 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Про пинг-понг уже упоминали? Простите, тред не читал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 07:48 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадя, Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет. Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный. Сервер продолжает писать в сокет и никаких ошибок не возникает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 08:52 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Petro123вадядля этого надо что-то сделать, то что ты считаешь надо не факт что это верно - у меня без этого счетчик изменяется. проверь.переведи фразу. Он как то корректнее и аргументированнее выше тебе ответил.дело в том , что тс очищает список сессий два раза - пр возникновении ошибки и при закрытии при проверке моего варианта - на его яблоке, было выявлено, что при переходе со страницы на страницу срабатывает сначала событие ошибки, потом событие закрытия. причем ошибка такая, которая наблюдается при работе с клиентом на ардуино, когда на ардуино жмёшь кнопку ресет. при этом следует событие onClose с кодом 1006 - CLOSED_ABNORMALLY само сообщение ошибки Unexpected error [730,054] reading data from the APR/native socket [440,456,416] with wrapper [org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@5f814793:440456416]. ТС дважды 21576856 очищает список. вторичное очищение вызывает дополнительную ошибку - ведь очищение уже произошло. я предложил убрать очистку списка сессий при ошибке, и посмотреть работу. в моём варианте при ресете клиента - проблем с накапливанием не работающих сессий при возникновении обрывов нет. для детального исследования необходимо иметь яблочный продукт (и видимо десктоп для отладки хрома в смартфоне) то, что появляется ошибка при обрыве - ничего страшного нет - надо просто обработать , пока я вижу её предназначение как чисто информационной/предупредительной. Alexander A. SakПро пинг-понг уже упоминали? Простите, тред не читал.вот это вопрос интересный. у меня ардуинка читает данные с лазерного дальномера и передаёт на сервер, сервер формирует строку для polyline для атрибута points и транслирует в браузер, который отображает "бегущую кривую" , число измеренй/отображений порядка 10 точек в секунду. если нажать ресет - сразу сообщение об ошибке, если вынуть шнурок сети из ардуинки - ошибки нет, график в браузере останавливается. но при втыкании шнурка обратно - все продолжается (часть данных , конечно, потеряна. А потеряна ли? судя по графику - кривая не обрывается , просто на момент разрыва передаваемые данные накапливаются и после соединения выплёвываются. на графике это отображается как "убыстрение бега" кривой ) вот тут и возникает вопрос - когда вступает в действие пинг-понг. и соответственно когда вступают "правила" озвученные тут 21573740 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 09:19 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
ИзопропилСервер продолжает писать в сокет и никаких ошибок не возникает?у меня сервер пишет в сокет только клиенту-браузеру, при поступлении данных по ws от клиента -ардуино. на ардуино - ws-клиент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 09:43 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
при длительном разрыве (больше 1минуты) сервер не показал ошибки, а при восстановлении (втыкании шнурка) передача не возобновилась. к сожалению посмотреть что отработало в ардуине нет возможностей.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 09:50 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
после обрыва больше минуты - данные не передаются , но подключение по телнету и опрос состояния ws показывают , что ws активен. закрытие и открытие ws возобновляет работу системы. таки остаётся вопрос что есть пинг-понг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 10:09 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakПро пинг-понг уже упоминали? Простите, тред не читал. Был вариант. Но. Это должен делать сервер, а значит на сервере надо ставить некий таймер что ли, который будет через некоторое время делать ping-pong. Еще нюансы. Этот таймер должен быть одним на всех клиентов? или же каждому подключившемуся клиенту давать таймер? Как лучше? Может уже есть готовые решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 15:10 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopЭто должен делать сервер,в мануалах не сказано, что это должен делать сервер. вообще-то таймер не нужен , он уже есть - это время жизни сессии. у меня сессия продлевается при каждом обращении клиента по ws на небольшое время. если время прошло клиенту отправляется ws-сообщение и он переходит на страницу авторизации. и его ws сессия удаляется. соответственно и для чата это можно использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 15:30 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, Да проблема не в обрыве. Чистится только один юзер по Session. Сначала отрабатывает onError, до того как onClose. Если бы ошибка была бы в onClose то он бы не срабатывал, а он срабатывает. И есть посмотреть stacktrace ошибки то видно то null где-то при считывании данных. И еще алгоритм чистки построен таким образом что если он не находит юзера по сессии то ниего не делает. Да и после того сработал onClose объект сессии не null и быть не может им (кроме явного присваивания в начале метода). Проблема в Юзерах которые хранятся в памяти и не чистятся. А не чистятся они из-за бага (или "фичи") iPhone (может быть на планшетах так же, надо будет проверить.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 15:36 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, а при чем здесь HttpSession если речь идет о сокетах? то что живет сессия это хорошо, но по факту прямого отношения к ws она не имеет. Да и отправлять ping-pong будет не сессия а ws. Когда клиент свернул или закрыл вкладку на телефоне JS перестает работать и соответственно никак не сделать ping сообщение, что бы ws ответил ему pong. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 15:38 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, ты , вместо, того чтоб спорить, взял бы и реально попробовал убрать очистку на событие ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 17:15 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklop, ты , вместо, того чтоб спорить, взял бы и реально попробовал убрать очистку на событие ошибки да пробовал я это - ничего не изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 17:16 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopда пробовал я это - ничего не изменилось.а что должно измениться? у меня ведь показало ошибку и на onClose удалило сессию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 17:23 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, какая разница как сессия закрыта? нормально или с кодом 1006? главное есть событие onClose. на нём и удаляй сессию из листа. ошибка про null - выскакивает когда ты дважды чистишь лист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 17:31 |
|
||
|
iOS некорректно срабатывает событие onClose WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopа при чем здесь HttpSession если речь идет о сокетах? то что живет сессия это хорошо, но по факту прямого отношения к ws она не имеетвремя сессии - это твой таймер, когда истекает время сессии это говорит о том , что либо юзер перестал работать со страницей, либо оборвалась связь (выдернут шнурок) вот и надо проверить что есть что. и послать пинг. который даст ответ что происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2018, 17:37 |
|
||
|
|

start [/forum/search_topic.php?author=drw&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 442ms |
| total: | 734ms |

| 0 / 0 |

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