powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / iOS некорректно срабатывает событие onClose WebSocket
25 сообщений из 78, страница 3 из 4
iOS некорректно срабатывает событие onClose WebSocket
    #39675058
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, надо думать.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675062
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадя, надо думать.мыло в профиле...
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675066
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадямыло в профиле...
на почту написать? если что скайп мой alucid2
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675295
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675333
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675335
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

судя по моим логам - яблочники не закрывают ws, а происходит обрыв. и на сервере появляется ошибка onError.
потом следует событие на сервере onClose.
ты на onError делаешь
disconnectUser("", session);
а потом и на onClose
disconnectUser(closeReason.toString(), session);
моё мнение , что на onError этого disconnectUser("", session); делать не следует
у меня такого нет и кроме обрабатываемой ошибки обрыва все работает нормально.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675881
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет.

Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675904
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадя,
Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет.

Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный.надо отделить мух от котлет
для этого надо что-то сделать, то что ты считаешь надо не факт что это верно - у меня без этого счетчик изменяется. проверь.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675982
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядля этого надо что-то сделать, то что ты считаешь надо не факт что это верно - у меня без этого счетчик изменяется. проверь.переведи фразу. Он как то корректнее и аргументированнее выше тебе ответил.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39675987
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про пинг-понг уже упоминали? Простите, тред не читал.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676009
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадя,
Сама проблема не в ошибке, а в том что соединение не закрывается. То бишь если 1000 человек зайдет на сайт с яблока и просто закроет вкладку то на сервере все эти 1000 клиентов останутся в памяти. Сам понимаешь когда этих клиентов много сервер просто ляжет.

Еще бок в том что на сайте есть отображение подключенных клиентов на данный момент - счетчик. И по факту в ситуации выше счетчик будет не корректный.
Сервер продолжает писать в сокет и никаких ошибок не возникает?
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676026
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676045
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилСервер продолжает писать в сокет и никаких ошибок не возникает?у меня сервер пишет в сокет только клиенту-браузеру, при поступлении данных по ws от клиента -ардуино.
на ардуино - ws-клиент.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676051
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при длительном разрыве (больше 1минуты) сервер не показал ошибки, а при восстановлении (втыкании шнурка) передача не возобновилась.
к сожалению посмотреть что отработало в ардуине нет возможностей..
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676065
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после обрыва больше минуты - данные не передаются , но подключение по телнету и опрос состояния ws показывают , что ws активен. закрытие и открытие ws возобновляет работу системы.

таки остаётся вопрос что есть пинг-понг?
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676247
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander A. SakПро пинг-понг уже упоминали? Простите, тред не читал.
Был вариант. Но.
Это должен делать сервер, а значит на сервере надо ставить некий таймер что ли, который будет через некоторое время делать ping-pong. Еще нюансы. Этот таймер должен быть одним на всех клиентов? или же каждому подключившемуся клиенту давать таймер?

Как лучше? Может уже есть готовые решения?
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676264
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopЭто должен делать сервер,в мануалах не сказано, что это должен делать сервер.
вообще-то таймер не нужен , он уже есть - это время жизни сессии.
у меня сессия продлевается при каждом обращении клиента по ws на небольшое время.
если время прошло клиенту отправляется ws-сообщение и он переходит на страницу авторизации. и его ws сессия удаляется. соответственно и для чата это можно использовать.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676272
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, Да проблема не в обрыве. Чистится только один юзер по Session. Сначала отрабатывает onError, до того как onClose. Если бы ошибка была бы в onClose то он бы не срабатывал, а он срабатывает. И есть посмотреть stacktrace ошибки то видно то null где-то при считывании данных. И еще алгоритм чистки построен таким образом что если он не находит юзера по сессии то ниего не делает. Да и после того сработал onClose объект сессии не null и быть не может им (кроме явного присваивания в начале метода).

Проблема в Юзерах которые хранятся в памяти и не чистятся. А не чистятся они из-за бага (или "фичи") iPhone (может быть на планшетах так же, надо будет проверить.)
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676275
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, а при чем здесь HttpSession если речь идет о сокетах? то что живет сессия это хорошо, но по факту прямого отношения к ws она не имеет. Да и отправлять ping-pong будет не сессия а ws. Когда клиент свернул или закрыл вкладку на телефоне JS перестает работать и соответственно никак не сделать ping сообщение, что бы ws ответил ему pong.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676365
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

ты , вместо, того чтоб спорить, взял бы и реально попробовал убрать очистку на событие ошибки
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676369
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop,

ты , вместо, того чтоб спорить, взял бы и реально попробовал убрать очистку на событие ошибки
да пробовал я это - ничего не изменилось.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676377
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopда пробовал я это - ничего не изменилось.а что должно измениться? у меня ведь показало ошибку и на onClose удалило сессию
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676385
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
какая разница как сессия закрыта? нормально или с кодом 1006?
главное есть событие onClose. на нём и удаляй сессию из листа.
ошибка про null - выскакивает когда ты дважды чистишь лист
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676388
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopа при чем здесь HttpSession если речь идет о сокетах? то что живет сессия это хорошо, но по факту прямого отношения к ws она не имеетвремя сессии - это твой таймер, когда истекает время сессии это говорит о том , что либо юзер перестал работать со страницей, либо оборвалась связь (выдернут шнурок) вот и надо проверить что есть что. и послать пинг. который даст ответ что происходит.
...
Рейтинг: 0 / 0
iOS некорректно срабатывает событие onClose WebSocket
    #39676391
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо оборвалась связь и юзер об этом не знает.
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 3 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / iOS некорректно срабатывает событие onClose WebSocket
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]