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 フレーム タイプが org で.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.unfoldAndFireMessageReceived(ReplayingDecoder.java:524) で io.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) で io.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437) で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 をサポートしているはずです。この問題に関する詳細情報を求めて Web を見回しましたが、有用なものは見つかりませんでした。
これについて詳しく教えていただければ幸いです。

4

1 に答える 1

0

Internet Explorer 11 が ping フレームをサポートし、pong で応答することを確認できます。私はちょうど試したので知っています。私は、ping と pong を使用して接続の活性をチェックし、待ち時間を測定する WebSocket サーバーの実装を持っています。また、IE が実際に ping を取得し、pong で応答していることを確認しました。

したがって、問題は Errai または GWT に関連する別のものに違いありません。

于 2014-04-26T23:54:04.373 に答える