如何从服务器端正确关闭WebSocket channel /连接?如果我使用ctx.getChannel().close()
,则会抛出Brwoser(Firefox 9)中的onerror
:
页面加载时,与ws://localhost:8080/websocket的连接被中断
我还尝试在CloseWebSocketFrame
的channelClosed
-method中发送一个WebSocketServerHandler
:
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
CloseWebSocketFrame close = new CloseWebSocketFrame();
ctx.getChannel().write(close);
}
这将抛出一个ClosedChannelException
(也许与to this有关?)。 最佳答案
您必须这样做:
ch.write(new CloseWebSocketFrame());
服务器将关闭连接。如果连接没有足够快地关闭,则可以调用
ch.close()
。