Bridge-protocol: пропуск не известных пакетов
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
group = 'asys'
|
group = 'asys'
|
||||||
version = '0.3-SNAPSHOT'
|
version = '0.3.1-SNAPSHOT'
|
||||||
|
|
||||||
task jar(type: Jar, overwrite: true) {
|
task jar(type: Jar, overwrite: true) {
|
||||||
// не собирать jar
|
// не собирать jar
|
||||||
|
|||||||
@@ -19,12 +19,15 @@ public class PacketDecoder extends ReplayingDecoder<Packet> {
|
|||||||
protected void decode(ChannelHandlerContext contect, ByteBuf inBuf, List<Object> out) throws Exception {
|
protected void decode(ChannelHandlerContext contect, ByteBuf inBuf, List<Object> out) throws Exception {
|
||||||
int id = inBuf.readUnsignedByte();
|
int id = inBuf.readUnsignedByte();
|
||||||
Class<? extends Packet> pktClass = contect.channel().attr(KNOWN_PACKETS).get().get(id);
|
Class<? extends Packet> pktClass = contect.channel().attr(KNOWN_PACKETS).get().get(id);
|
||||||
if (pktClass == null) return;
|
if (pktClass == null) return; //TODO надо бы в логгере писать про отсутствующий пакет
|
||||||
|
|
||||||
if (contect.channel().attr(KNOWN_HANDLERS).get().containsKey(pktClass)) {
|
if (contect.channel().attr(KNOWN_HANDLERS).get().containsKey(pktClass)) {
|
||||||
Packet packet = pktClass.newInstance();
|
Packet packet = pktClass.newInstance();
|
||||||
packet.readSelfData(inBuf);
|
packet.readSelfData(inBuf);
|
||||||
out.add(packet);
|
out.add(packet);
|
||||||
|
} else {
|
||||||
|
//TODO по хорошему, надо информровать, что отсутствует обработчик пакета
|
||||||
|
inBuf.skipBytes(inBuf.readableBytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user