Session session = entry.getValue(); if ((allowRunWithoutApp || session.isAppConnected()) && session.isHardwareConnected()) { UserKey userKey = entry.getKey(); User user = userDao.users.get(userKey);
private void sentOfflineMessage(ChannelHandlerContext ctx, Session session, DashBoard dashBoard, Device device) { //this is special case. //in case hardware quickly reconnects we do not mark it as disconnected //as it is already online after quick disconnect. //https://github.com/blynkkk/blynk-server/issues/403 boolean isHardwareConnected = session.isHardwareConnected(dashBoard.id, device.id); if (!isHardwareConnected) { log.trace("Changing device status. DeviceId {}, dashId {}", device.id, dashBoard.id); device.disconnected(); } if (!dashBoard.isActive) { return; } Notification notification = dashBoard.getNotificationWidget(); if (notification != null && notification.notifyWhenOffline) { sendPushNotification(ctx, notification, dashBoard.id, device); } else if (!dashBoard.isNotificationsOff) { session.sendOfflineMessageToApps(dashBoard.id, device.id); } }
Session session = entry.getValue(); if (session.isHardwareConnected() && session.isAppConnected()) { connectedSessions++; if (session.isHardwareConnected()) { hardActive++; totalOnlineHards += session.hardwareChannels.size();
Session session = sessionDao.get(state.userKey); if (session.isHardwareConnected(dashId)) { for (Device device : dash.devices) { String pmBody = dash.buildPMMessage(device.id); if (pmBody == null) { if (!session.isHardwareConnected(dashId, device.id)) { log.debug("No device in session."); if (ctx.channel().isWritable() && !dash.isNotificationsOff) {
@GET @Path("{token}/isHardwareConnected") @Metric(HTTP_IS_HARDWARE_CONNECTED) public Response isHardwareConnected(@PathParam("token") String token) { TokenValue tokenValue = tokenManager.getTokenValueByToken(token); if (tokenValue == null) { log.debug("Requested token {} not found.", token); return badRequest("Invalid token."); } User user = tokenValue.user; int dashId = tokenValue.dash.id; int deviceId = tokenValue.device.id; Session session = sessionDao.get(new UserKey(user)); return ok(session.isHardwareConnected(dashId, deviceId)); }