| | |
| | | package com.whyc.webSocket.receiver; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.whyc.dto.FireRobotData; |
| | | import com.whyc.pojo.db_fire_robot.*; |
| | | import com.whyc.service.*; |
| | | import com.whyc.util.JsonUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.socket.CloseStatus; |
| | | import org.springframework.web.socket.TextMessage; |
| | | import org.springframework.web.socket.WebSocketHttpHeaders; |
| | | import org.springframework.web.socket.WebSocketSession; |
| | | import org.springframework.web.socket.handler.TextWebSocketHandler; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.util.Date; |
| | | |
| | | public class ThirdPartyWebSocketHandler extends TextWebSocketHandler { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(ThirdPartyWebSocketHandler.class); |
| | | private WebSocketSession session; |
| | | |
| | | @Autowired |
| | | private EnvironmentService environmentService; |
| | | |
| | | @Autowired |
| | | private EnvironmentThresholdService environmentThresholdService; |
| | | |
| | | @Autowired |
| | | private RobotAlarmService robotAlarmService; |
| | | |
| | | @Autowired |
| | | private RobotStatusService robotStatusService; |
| | | |
| | | @Autowired |
| | | private IdentifyAlarmService identifyAlarmService; |
| | | |
| | | @Override |
| | | public void afterConnectionEstablished(WebSocketSession session) { |
| | |
| | | log.info("Received message: {}", message.getPayload()); |
| | | // 可以在这里做业务处理,比如发布事件、存入队列等 |
| | | String jsonStr = message.getPayload(); |
| | | Gson gson = JsonUtil.getGson(); |
| | | FireRobotData fireRobotData = gson.fromJson(jsonStr, FireRobotData.class); |
| | | Date now = new Date(); |
| | | switch (fireRobotData.getType()){ |
| | | case "environment": { |
| | | FireRobotData<Environment> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<Environment>>() { |
| | | }.getType()); |
| | | Environment env = data.getData(); |
| | | env.setRecordTime(now); |
| | | //存入数据库 |
| | | environmentService.add(env); |
| | | }break; |
| | | case "status": { |
| | | FireRobotData<RobotStatus> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotStatus>>() { |
| | | }.getType()); |
| | | RobotStatus status = data.getData(); |
| | | status.setRecordTime(now); |
| | | //存入数据库 |
| | | robotStatusService.add(status); |
| | | }break; |
| | | case "alarm": { |
| | | FireRobotData<RobotAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<RobotAlarm>>() { |
| | | }.getType()); |
| | | RobotAlarm alarm = data.getData(); |
| | | //存入数据库 |
| | | robotAlarmService.add(alarm); |
| | | }break; |
| | | case "threshold": { |
| | | FireRobotData<EnvironmentThreshold> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<EnvironmentThreshold>>() { |
| | | }.getType()); |
| | | EnvironmentThreshold threshold = data.getData(); |
| | | threshold.setRecordTime(now); |
| | | //存入数据库 |
| | | environmentThresholdService.add(threshold); |
| | | }break; |
| | | case "identifyAlarm": { |
| | | FireRobotData<IdentifyAlarm> data = gson.fromJson(jsonStr, new TypeToken<FireRobotData<IdentifyAlarm>>() { |
| | | }.getType()); |
| | | IdentifyAlarm alarm = data.getData(); |
| | | //存入数据库 |
| | | identifyAlarmService.add(alarm); |
| | | }break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |