метод Close вызывается для завершения или ненормального завершения WebSocket.
Ошибки ввода-вывода, тайм-ауты простоя, резкие разъединения и другие ошибки в методе Error.
Любое событиеonClose()
или onError()
сигнализирует об окончании сеанса.
Исключительные замыкания (throwables) не позволяют определить, какой из двух методов событий приложения вызывается.
Некоторые варианты поведения:
- Мы пытаемся уведомить
onClose()
только один раз. - Мы пытаемся уведомить
onError()
только один раз. - Если вызывается
onClose()
, onError()
будетне вызываться. - Если вызывается
onError()
, onClose()
вызываться не будет. - Если определено, что замыкание происходит из исключения, то:
- исключение регистрируется на уровне DEBUG
- приложение
onError()
вызывается (если еще не вызвано) - закрывающий фрейм ставится в очередь (если еще не отправлен или поставлен в очередь)
- при успешном завершении или сбое при закрытии кадра соединение разорвано. (в этом исключительном случае нет ожидания для удаленного закрытия кадра)
Сбои во время рукопожатия ...
- В клиенте WebSocketсоединение завершится неудачно с исключением (это может быть сообщено как сбой при попытке получить объект Session из будущего соединения)
- На сервере WebSocket соединение не будет выполнено, сеанс WebSocket не создан, нетКонечная точка создана, не вызывается
onOpen()
.