誰か助けてくれませんか?
私はクライアントサーバーアプリケーションを書いています。サーバーとクライアントは websocket で接続されています。サーバーのパイプライン:
ChannelPipeline pipeline = pipeline();
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast("aggregator", new HttpChunkAggregator(65536));
pipeline.addLast("encoder", new HttpResponseEncoder());
pipeline.addLast("handler", new WebSocketServerHandler());
クライアントのパイプライン:
final WebSocketClientHandshaker handshaker =
new WebSocketClientHandshakerFactory().newHandshaker(
uri, WebSocketVersion.V13, null, false, customHeaders);
pipeline.addLast("decoder", new HttpResponseDecoder());
pipeline.addLast("encoder", new HttpRequestEncoder());
pipeline.addLast("ws-handler", new WebSocketClientHandler(handshaker));
このアプリケーションはプロキシのように機能します。サーバーは外部から httprequest を取得し、それを WebSocket 経由でクライアントに送信します。クライアントはそれを受け取り、変更された指定された URL に送信し、応答を受け取り、websockets 経由でサーバーに送り返します。サーバーはこの応答を受け取り、それを要求したチャネルにデータを書き込みます。
今のところ主な質問 - HttpRequest を WebSocketFrame に変換して元に戻す最良の方法は何ですか? 現在のアイデアは、HttpRequest を文字列で読み取り、それを TextWebSocketFrame として送信することです。この状況では、現在サーバーとクライアントに指定されている標準のデコーダーを交換して、二重の会話を行わないようにする必要があると思います。Netty でそのようなデコーダーは見つかりませんでした。
しかし、これは悪い方法であり、もっと良い決定があるのではないでしょうか? 答えてくれてありがとう!私はネット初心者です。
よろしくお願いします