private void completeLogin(Channel channel, Session session, User user, int msgId, Version version) { if (allowStoreIp) { user.lastLoggedIP = IPUtils.getIp(channel.remoteAddress()); } user.lastLoggedAt = System.currentTimeMillis(); session.addAppChannel(channel); channel.writeAndFlush(ok(msgId), channel.voidPromise()); for (DashBoard dashBoard : user.profile.dashBoards) { if (dashBoard.isAppConnectedOn && dashBoard.isActive) { log.trace("{}-{}. Sending App Connected event to hardware for project {}.", user.email, user.appName, dashBoard.id); session.sendMessageToHardware(dashBoard.id, BLYNK_INTERNAL, 7777, "acon"); } } if (version.isOutdated()) { channel.writeAndFlush( makeASCIIStringMessage(OUTDATED_APP_NOTIFICATION, msgId, "Your app is outdated. Please update to the latest app version. " + "Ignoring this notice may affect your projects."), channel.voidPromise()); } log.info("{} {}-app ({}) joined.", user.email, user.appName, version); }