using BPA.Message;
using BPASmartClient.MQTT;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BPASmartClient.Business
{
public class LocalMqtt
{
private volatile static LocalMqtt _Instance;
public static LocalMqtt GetInstance => _Instance ?? (_Instance = new LocalMqtt());
private LocalMqtt() { }
///
///
///
SendScreenDataModel MqttPushs = new SendScreenDataModel();
MQTTProxy mQTTProxy = new MQTTProxy();
ScreenDeviceType LocDeviceType;
public void Init(ScreenDeviceType DeviceType)
{
MqttPushs.Name = DeviceType;
LocDeviceType = DeviceType;
mQTTProxy.Connected = new Action(() =>
{
mQTTProxy.Subscrib(ScreenTOPIC.GetInstance.GetTopic(DeviceType)) ;
});
mQTTProxy.Connect("emqx_u_block", "emqx_p_admin3658765490789", "47.108.65.220", 1883, $"{DeviceType}_设备监听数据{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");//"10.2.1.254""admin", "public"
}
public void Start()
{
}
///
/// MQTT消息推送
///
/// 主题
/// 消息体
public void Publish(object message)
{
MqttPushs.Value = message;
mQTTProxy.Publish(ScreenTOPIC.GetInstance.GetTopic(LocDeviceType), JsonConvert.SerializeObject(MqttPushs));
}
}
}