如何从服务器端正确关闭 WebSocket 通道/连接?如果我使用一个ctx.getChannel().close()
, the onerror
在浏览器(Firefox 9)中抛出:
页面加载时与 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
(也许相关to this https://stackoverflow.com/questions/8872106/?).
你必须这样做:
ch.write(new CloseWebSocketFrame());
然后服务器将关闭连接。如果连接没有尽快关闭,您可以调用ch.close()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)