@Override
protected void channelRead0(ChannelHandlerContext ctx, ShareLoginMessage message) {
String[] messageParts = message.body.split(StringUtils.BODY_SEPARATOR_STRING);
if (messageParts.length < 2) {
log.error("Wrong income message format.");
ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise());
} else {
var version = messageParts.length > 3
? new Version(messageParts[2], messageParts[3])
: Version.UNKNOWN_VERSION;
appLogin(ctx, message.id, messageParts[0], messageParts[1], version);
}
}