Internet Explorer不支持PongWebSocketFrame

时间:2014-04-25 12:21:50

标签: java internet-explorer websocket errai

我一直在开发一个使用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。我一直在网上寻找有关此问题的更多信息,但无法找到任何有用的信息 希望你能告诉我更多关于这个以及我能做些什么。

1 个答案:

答案 0 :(得分:0)

我可以确保Internet Explorer 11支持ping帧并使用pong进行回复。我知道因为我刚试过我有一个WebSocket服务器的实现,它使用ping和pongs来检查连接活跃度和延迟测量,我已经检查过IE实际上是ping并用pongs回复。

所以这个问题必须与Errai或GWT有关。