Нормальное закрытие (1000) WebSocket дает код состояния «Резкое закрытие» (1006) в закрывающем дескрипторе WebSocket с последней версией. - PullRequest
1 голос
/ 18 октября 2019

Клиент открывает соединение WebSocket, а затем закрывает WebSocket с кодом состояния 1000, вызывая webSocketSession.close(1000, "normal-close of WebSocket session").

В обработчике при закрытии WebSocket:

@OnWebSocketClose
public void onClose(Session client, int statusCode, String message)

Я получаюкод состояния 1006 для AbruptDisconnect. Таким образом, это означает, что WebSocket закрывается не нормально, а внезапно.

Я получаю код состояния 1006 с версией Jetty: 9.4.20.v20190813 . Однако в случае Jetty-версии: 9.4.6.v20170531 я получаю правильный код состояния в закрывающем обработчике WebSocket (@OnWebSocketClose), т. Е. 1000. Это означает, что в более старой версии Jetty webSocket закрываетсяобычно

Другое наблюдение относится к более новой версии Jetty (9.4.20.v20190813), как только клиент нормально закрывает WebSocket, вызывается обработчик закрывания WebSocket (@OnWebSocketClose), который выдает код состояния 1006. Однако в более старой версии Jetty (9.4.6.v20170531) для вызова дескриптора закрытия WebSocket (@OnWebSocketClose) после обычного отключения WebSocket требуется около 400-500 мс.

Что-то изменилосьо том, как сеанс отключен в новом причале, или это проблема регрессии?

...