老師的源代碼啟動之后一旦刷新網(wǎng)頁,或者關(guān)閉網(wǎng)頁,就會拋異常,請問如何解決它?
源代碼雖然可以正常使用,發(fā)消息也沒問題。但是啟動網(wǎng)頁后,一刷新網(wǎng)頁或者關(guān)閉網(wǎng)頁,就會拋異常:
*******************************************************************************************************************
目前我們不支持二進制消息
java.lang.RuntimeException: 【com.imooc.netty.websocket.MyWebSocketHandler】不支持消息
客戶端與服務(wù)端連接關(guān)閉...
at com.imooc.netty.websocket.MyWebSocketHandler.handWebsocketFrame(MyWebSocketHandler.java:104)
at com.imooc.netty.websocket.MyWebSocketHandler.messageReceived(MyWebSocketHandler.java:80)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)
at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:74)
at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:138)
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:154)
at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:74)
at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:138)
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:127)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:452)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:346)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:794)
at java.lang.Thread.run(Thread.java:745)
客戶端與服務(wù)端連接開啟...
****************************************************************************************************************************
請問一下異常的原因,以及如何解決異常。
2019-03-20
剛剛突然間發(fā)現(xiàn),在判斷是否為CloseWebSocketFrame的時候,如果是CloseWebSocketFrame并沒有return,也就是程序?qū)^續(xù)往下運行,然后又判斷如果不是TextWebSocketFrame自然就拋異常,所以正解應(yīng)該是在判斷CloseWebSocketFrame時,如果是,加上return即可。
2019-03-20
這個地方判斷二進制消息的方法是 如果不是?CloseWebSocketFrame PingWebSocketFrame 和 TextWebSocketFrame 就是 二進制消息,所以我猜測應(yīng)該服務(wù)器刷新之類的操作會發(fā)送這么一個消息吧?
2018-09-17
2018-09-17
我嘗試著把代碼修改為這樣,然后就不報錯了。但是。。。why??
2018-09-17