package com.thhy.screen.config; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.thhy.general.common.BasicResult; import com.thhy.general.common.enums.ProListenType; import com.thhy.screen.modules.biz.agv.entity.AgvStateHistory; import com.thhy.screen.modules.biz.agv.mapper.AgvStateHistoryMapper; import com.thhy.screen.modules.biz.bigscreen.controller.ProListenSocketServer; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.redisson.api.RedissonClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.websocket.Session; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArraySet; @Component public class OnMqttCallBack implements MqttCallback { private Logger logger = LoggerFactory.getLogger("Mqtt-jianting"); @Autowired private RedissonClient redissonClient; @Autowired private AgvStateHistoryMapper historyMapper; @Override public void connectionLost(Throwable throwable) { System.out.println("丢失连接"); } @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { System.out.println(s+"================="+mqttMessage.toString()); System.out.println(s+"================="+mqttMessage.toString()); logger.info("接收到数据"+mqttMessage.toString()); /*if("agvmqtt".equals(s)){ CopyOnWriteArraySet SESSIONS = ProListenSocketServer.SESSIONS; SESSIONS.forEach(session ->{ try { List jsonObjectList = new ArrayList<>(); JSONObject jsonObject = JSON.parseObject(mqttMessage.toString()); AgvStateHistory agvStateHistory = JSON.parseObject(mqttMessage.toString(),AgvStateHistory.class); historyMapper.insert(agvStateHistory); logger.info("保存成功"+mqttMessage.toString()); jsonObject.put("mod", ProListenType.AGVINFO); jsonObjectList.add(jsonObject); if (session.isOpen()) { session.getBasicRemote().sendText(JSON.toJSONString(BasicResult.success(jsonObjectList))); logger.info("成功推送AGV消息到生产监控大屏"+session.getId()+"___"+session.getRequestURI().getHost()); } } catch (IOException e) { throw new RuntimeException(e); } }); }*/ } @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { System.out.println("sssss"); } }