1
我遇到了在頻道註冊(客戶端 - >服務器)上發送數據包的問題。 進一步測試,如果我在註冊後發送數據包,我可以發送數據包。 相反的方式(服務器 - >客戶端)完全正常。 註冊功能:Netty - 無法在註冊時寫入頻道(channelRegistered event)
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
ctx.channel().write(new byte[] {0x00});
}
它還遇到的編碼器向下過濾器鏈:
public class Encoder extends MessageToByteEncoder<byte[]>{
@Override
protected void encode(ChannelHandlerContext ctx, byte[] b, ByteBuf bb) throws Exception {
byte[] data = b.getData();
bb.writeInt(data.length);
bb.writeBytes(data);
}
}
服務器因此不接收前述分組 - 作爲結果, 我調試以查看是否channelRead事件解僱了,但沒有。 (我的解碼類也沒有解碼數據)
任何假設?
我明白了,我猜我不應該衝過去讀API說明,謝謝你的啓發:) – user3385390