ffch/src/main/java/com/github/bluesbruce/spring/service/MqttLiveHandle.java

70 lines
2.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.github.bluesbruce.spring.service;
import com.alibaba.fastjson.JSONObject;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
@Component
@Slf4j
public class MqttLiveHandle {
@Autowired
private RtmpLiveService rtmpLiveService;
public void handleLive(final String topic, MqttMessage message) throws InterruptedException {
String objmsg = new String(message.getPayload());
final JSONObject jsonObject = JSONObject.parseObject(objmsg);
if (topic.contains("rtmp/live")) {
if (!ObjectUtils.isEmpty(jsonObject.get("command"))) {
String cmdoperat = jsonObject.get("command").toString();
if (cmdoperat.equals("start")) {
Thread.sleep(15000);
Thread thread = new Thread(new Runnable() {
String code = jsonObject.get("code") == null ? topic.split("/")[2] : jsonObject.get("code").toString();
public void run() {
try {
rtmpLiveService.pushServer(code);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
} else if (cmdoperat.equals("stop")) {
rtmpLiveService.stopRtmp();
}
}
}else if(topic.contains("/data/DroneBMS")){
log.info("获取object",jsonObject);
if (!ObjectUtils.isEmpty(jsonObject.get("parm"))) {
log.info("获取param",jsonObject.get("parm"));
JSONObject cmdoperat = jsonObject.getJSONObject("parm");
String boolbms = cmdoperat.getString("Power");
log.info("boolbms",jsonObject.get("Power"));
if (boolbms.equals("on")) {
Thread.sleep(15000);
Thread thread = new Thread(new Runnable() {
String code = jsonObject.get("code") == null ? topic.split("/")[2] : jsonObject.get("code").toString();
public void run() {
try {
rtmpLiveService.pushServer(code);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
} else if (boolbms.equals("off")) {
log.info("关闭流");
rtmpLiveService.stopRtmp();
}
}
}
}
}