我一直在开发一个使用Errai Messaging的GWT应用程序。一切都很好,直到我通过在ErraiService.properties文件中添加"errai.bus.enable_web_socket_server=true"来启用Websocket。
在我尝试在InternetExplorer上运行之前,没有出现任何问题,当第一条消息在客户端和服务器之间发送时,会显示以下消息,并且消息永远不会到达另一端。
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)位于io.nety.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)位于io.netty.channe.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:580)位于io.nety.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPiperine.java:814)在io.nety.channel.Channels.fireMessageReceived(Channels.java:297)位于io.nety.handler.codec.replaying.ReplayingDecoder.unfoldAndFireMessageReceived(ReplayingDecoder.java:524)位于io.nety.handler.codec.replaying.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)位于io.nety.handler.codec.replaying.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437)位于io.nety.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)位于io.netty.channe.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:580)位于io.netty.channe.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:575)位于io.nety.channel.Channels.fireMessageReceived(Channels.java:269)在io.nety.channel.Channels.fireMessageReceived(Channels.java:256)位于io.nety.channel.socket.nio.NioWorker.read(NioWorker.java:89)位于io.nety.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:301)位于io.nety.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:220)位于io.netty.util.internal.DedLockProofWorker$1.run(DeadLockProofWorker.java:43)位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)在java.lang.Thread.run(Thread.java:662)
只有在Internet Explorer中运行时才会发生这种情况。据我所知,IE应该支持Websocket。我一直在网上寻找有关这个问题的更多信息,但找不到任何有用的信息
希望你能告诉我更多关于这件事以及我能做些什么。
我可以确保您的Internet Explorer 11支持ping帧并用pong进行回复。我知道,因为我刚刚试过。我有一个WebSocket服务器的实现,它使用ping和pong来检查连接活跃度和延迟测量,我已经检查了IE是否真的得到了ping并用pong进行了回复。
因此,问题一定与Errai或GWT有关。