| | |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | |
| | | import java.util.*; |
| | | |
| | |
| | | private RedisUtil redisUtil; |
| | | @Autowired |
| | | private EmqxApi emqxApi; |
| | | @Autowired |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | |
| | | @Bean |
| | |
| | | mqttClient.subscribe(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA); |
| | | System.out.println("admin订阅" + MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA); |
| | | // 订阅租户报警数据 |
| | | mqttClient.subscribe(MqttConstant.TENANT_UP_PREFIX_REAL_FAULT_DATA); |
| | | System.out.println("admin订阅" + MqttConstant.TENANT_UP_PREFIX_REAL_FAULT_DATA); |
| | | mqttClient.subscribe(MqttConstant.TENANT_UP_PREFIX_FAULT_DATA); |
| | | System.out.println("admin订阅" + MqttConstant.TENANT_UP_PREFIX_FAULT_DATA); |
| | | mqttClient.subscribe(MqttConstant.TENANT_UP_PREFIX_EQU); |
| | |
| | | * 服务端(admin角色)启动时查询所有设备并缓存到redis |
| | | */ |
| | | private void initClients() { |
| | | redisUtil.removeAll(MqttConstant.MQTT_ONLINE_CLIENT); |
| | | //初始化时先删除所有在线设备 |
| | | Set keys = redisTemplate.keys( String.format(MqttConstant.MQTT_ONLINE_CLIENT,"*")); |
| | | if (keys != null && !keys.isEmpty()) { |
| | | keys.forEach(key -> System.out.println("初始化删除在线设备: " + key)); |
| | | redisTemplate.delete(keys); |
| | | } else { |
| | | System.out.println("初始化无在线设备: " + MqttConstant.MQTT_ONLINE_CLIENT); |
| | | } |
| | | |
| | | JSONObject clients = emqxApi.queryEmqx(EmqxApi.CMD_CLIENTS); |
| | | //TODO 根据emqx返回编写实体类 |
| | |
| | | item.put("type", info[0]); |
| | | item.put("tenantId", info[1]); |
| | | //item.put("code", info[2]); |
| | | |
| | | if (connected) { |
| | | redisUtil.hset(String.format(MqttConstant.MQTT_ONLINE_CLIENT,item.get("tenantId").toString()) , clientid, item); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | if (connected) { |
| | | redisUtil.set(MqttConstant.MQTT_ONLINE_CLIENT + clientid, item); |
| | | } |
| | | |
| | | |
| | | |
| | | } |