Ich habe ein Problem beim Senden von Paketen bei der Kanalregistrierung (Client -> Server) festgestellt. Um weiter zu testen, wenn ich das Paket nach der Registrierung sende, darf ich das Paket senden. Der umgekehrte Weg (Server -> Client) funktioniert einwandfrei. Registrierungsfunktion:Netty - kann bei der Registrierung nicht in den Kanal schreiben (Ereignis channelRegistered)
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
ctx.channel().write(new byte[] {0x00});
}
Es trifft auch einen Encoder auf die Filterkette:
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);
}
}
Der Server bietet deshalb nicht das oben genannte Paket erhält - als Ergebnis ich gedebuggt wenn channelRead Ereignis sehen gefeuert und es tat es nicht. (Weder hat meine Dekodierklasse die Daten zu decodieren)
Irgendwelche Annahmen?
Ich sehe, ich denke, ich hätte nicht gejagt und lesen Sie die API-Beschreibung, danke für die Aufklärung mich :) – user3385390