use of io.dingodb.net.netty.packet.message.ErrorMessage in project dingo by dingodb.
the class GenericMessageHandler method handle.
@Override
public void handle(Connection<Message> connection, Packet<Message> packet) {
switch(packet.header().type()) {
case PING:
connection.genericSubChannel().send(MessagePacket.pong(0));
return;
case PONG:
break;
case CONNECT_CHANNEL:
ConnectionSubChannel<Message> channel = connection.openSubChannel(packet.header().targetChannelId());
channel.send(MessagePacket.ack(channel.channelId(), channel.targetChannelId(), channel.nextSeq()));
break;
case DIS_CONNECT_CHANNEL:
connection.closeSubChannel(packet.header().channelId());
break;
case ACK:
Optional.ofNullable(ackFuture.get(connection)).map(futureMap -> futureMap.remove(packet.header().channelId())).ifPresent(future -> future.complete(packet));
break;
case HANDSHAKE_ERROR:
ErrorMessage errorMessage = ErrorMessage.builder().build().load(packet.content().toBytes());
log.error("Handshake failed, msg is: {}", errorMessage.getDetailMessage());
try {
connection.close();
} catch (Exception e) {
log.error("Connection close error.", e);
}
break;
default:
throw new IllegalStateException("Unexpected value: " + packet.header().type());
}
}
Aggregations