如何模拟客户端主动关闭呢?直接关浏览器跑二进制消息里面了,没有走关闭流程。main方法的finally也没执行。
客户端关闭是socket.close()方法,直接关浏览器也是会给服务端发送关闭请求的,直接跑到二进制消息中的原因是这样的。在判断是否为CloseWebSocketFrame的时候,如果是CloseWebSocketFrame并没有return,也就是程序将会继续往下运行,然后又判断如果不是TextWebSocketFrame自然就抛异常,所以正解应该是在判断CloseWebSocketFrame时,如果是,加上return即可。