Как правильно закрыть канал/соединение WebSocket на стороне сервера? Если я использую ctx.getChannel(). close()
, то в Brwoser (Firefox 9) происходит onerror
:
Соединение с ws://localhost: 8080/websocket было прервано во время загрузки страницы
Я также попытался отправить CloseWebSocketFrame
в channelClosed
-методе в WebSocketServerHandler
:
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
CloseWebSocketFrame close = new CloseWebSocketFrame();
ctx.getChannel().write(close);
}
Это бросает ClosedChannelException
(возможно, связанный с этим? ).