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<Session> SESSIONS = ProListenSocketServer.SESSIONS;
|
SESSIONS.forEach(session ->{
|
try {
|
List<JSONObject> 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");
|
}
|
}
|