Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Работа с сетью > Jetty WebSocket статус при обрыве соединения |
Автор: ZVano 23.9.2016, 17:00 | ||||
0. Имею рабочий WebSocketServer на "ws://localhost:8000". Он запущен и готов к работе. Для простоты считаем что это сервер чата. 1. Чат-клиент. Запускаю. Выполняется успешный коннект к серверу используя Jetty WebSocketClient wsClient 2. Чат-клиент. Запрашиваю статус соединения. wsClient.isStarted() // Возвращает true 3. Чат-сервер. Вручную выключаю. 4. Чат-клиент. Запрашиваю статус соединения wsClient.isStarted() // Возвращает true Класс-обертка для инициализвации соединения
Класс, который дергает Jetty
Вопросы: 1. Почему после обрыва соединения вызов wsClient.isStarted() возвращает true? 2. Как правильно работать с WebSocket клиентом от Jetty, если подразумевается длительное соединение? В родной http://www.eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html приведен пример короткоживущего SimpleEchoClient приложения. Буду премного благодарен, если кто-то запостит ссылки на примеры. |
Автор: ZVano 28.9.2016, 17:43 | ||||
Не знаю правильно сделал или нет, но теперь я проверяю сессию, которая приходит в onConnect моего MyWebSocketClient.
Фрагмент из Session.java
|
Автор: ZVano 24.10.2016, 16:57 | ||||||
3я часть марлезонского балета - теперь статус соединения в сессии не меняется, если в момент разрыва соединения основной поток приложения был заблокирован. Далее искуственный пример:
Получим такой результат:
Вопрос остается прежним - Как определить состояние подключения? Интересует готов WebSocket к передаче данных или нет. Неприятной неожиданностью стал тот факт, что в данном случае отправка сообщения не вызывает исключения "this.session.getRemote().sendString(...)", а по документации должен свалиться.
|