我一直在开发一个使用Errai Messaging的GWT应用程序。一切正常,直到我通过在ErraiService.properties文件中添加“errai.bus.enable_web_socket_server = true”来启用Websocket。
在尝试在Internet Explorer上运行之前没有出现任何问题,当第一条消息在客户端 - 服务器之间发送时,显示以下内容并且消息永远不会到达另一方。
java.lang.UnsupportedOperationException:不支持io.netty.handler.codec.http.websocketx.PongWebSocketFrame框架类型 在org.jboss.errai.bus.server.io.websockets.WebSocketServerHandler.handleWebSocketFrame(WebSocketServerHandler.java:144) 在org.jboss.errai.bus.server.io.websockets.WebSocketServerHandler.messageReceived(WebSocketServerHandler.java:108) at io.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 在io.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:580) at io.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:814) at io.netty.channel.Channels.fireMessageReceived(Channels.java:297) at io.netty.handler.codec.replay.ReplayingDecoder.unfoldAndFireMessageReceived(ReplayingDecoder.java:524) at io.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) at io.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437) at io.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 在io.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:580) at io.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:575) at io.netty.channel.Channels.fireMessageReceived(Channels.java:269) at io.netty.channel.Channels.fireMessageReceived(Channels.java:256) 在io.netty.channel.socket.nio.NioWorker.read(NioWorker.java:89) at io.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:301) at io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:220) at io.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:43) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908) 在java.lang.Thread.run(Thread.java:662)
仅在Internet Explorer中运行时才会出现此问题。据我所知,IE应该支持Websocket。我一直在网上寻找有关此问题的更多信息,但无法找到任何有用的信息 希望你能告诉我更多关于这个以及我能做些什么。
答案 0 :(得分:0)
我可以确保Internet Explorer 11支持ping帧并使用pong进行回复。我知道因为我刚试过我有一个WebSocket服务器的实现,它使用ping和pongs来检查连接活跃度和延迟测量,我已经检查过IE实际上是ping并用pongs回复。
所以这个问题必须与Errai或GWT有关。