1

我一直在开发一个使用 Errai Messaging 的 GWT 应用程序。一切正常,直到我通过在 ErraiService.properties 文件中添加“errai.bus.enable_web_socket_server=true”来启用 Websocket。

在我尝试在 Internet Explorer 上运行之前没有出现任何问题,当第一条消息在客户端 - 服务器之间发送时,显示以下内容并且消息永远不会到达另一端。

java.lang.UnsupportedOperationException:org.jboss.errai.bus.server.io.websockets.WebSocketServerHandler.handleWebSocketFrame(WebSocketServerHandler.java:144) 不支持 io.netty.handler.codec.http.websocketx.PongWebSocketFrame 帧类型.jboss.errai.bus.server.io.websockets.WebSocketServerHandler.messageReceived(WebSocketServerHandler.java:108) 在 io.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 在 io.netty.channel.DefaultChannelPipeline.sendUpstream (DefaultChannelPipeline.java:580) 在 io.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:814) 在 io.netty.channel.Channels.fireMessageReceived(Channels.java:297) 在 io.netty.handler。 codec.replay.ReplayingDecoder。io.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) 在 io.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437) 的展开AndFireMessageReceived(ReplayingDecoder.java:524)在 io.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 在 io.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:580) 在 io.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:575) ) 在 io.netty.channel.Channels.fireMessageReceived(Channels.java:269) 在 io.netty.channel.Channels.fireMessageReceived(Channels.java:256) 在 io.netty.channel.socket.nio.NioWorker.read( NioWorker.java:89) 在 io.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:301) 在 io.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:220) 在 io.netty.util.internal.DeadLockProofWorker$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。我一直在网上寻找有关此问题的更多信息,但找不到任何有用的信息。
希望你能告诉我更多关于这件事以及我能做些什么。

4

1 回答 1

0

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

所以问题一定是与 Errai 或 GWT 相关的其他问题。

于 2014-04-26T23:54:04.373 回答