Netty 3.6.x を使用してソケット ベースのアプリを開発しています。ただし、channel.write で問題が発生しています。これは私がやったことです: まず、チャネルが CONNECTED 状態になるたびに、チャネルに書き込み、成功します。サーバーが完了したら再接続を試み、チャネルが接続されたら書き込みを試みますが、今回はサーバーがデータを受信していないようです。
また、書き込み状態を確認すると、完了と表示されます。
何が問題になる可能性がありますか?
ChannelFuture が失敗したかどうかを確認し、失敗した場合は次の方法でエラーを検査する必要があります。
ChannelFuture future = ...
if (!future.isSuccess()) {
future.getCause().printStacktrace();
}
これにより、失敗した理由が表示されます。
ありがとうノーマン。問題を修正しました。問題は、ChannelFuture リスナーを使用していたことで、そのコールバック内でパイプラインとトランスコーダーを設定していたことに気付きました。そのため、データをネットワーク経由で送信すると、正しくエンコードされません。解決するには、channelConnected および channelCLosed メソッドですべてを処理する必要があります。