DMS C# API

导入文件

M2MqttEx.dll

命名空间

using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;

初始化

//DMS.Init() //默认地址也是mqtt.dms.aodianyun.com
DMS.Init("mqtt.dms.aodianyun.com");

注册事件

/* 调用事件是在单独的线程中进行的 */
//当推送消息成功后,该事件会被调用
DMS.MqttMsgPublished += MqttMsgPublished;
//当连接断开后,该事件会被调用
DMS.ConnectionClosed += ConnectionClosed;
//关注话题成功后,该事件会被调用
DMS.MqttMsgSubscribed += MqttMsgSubscribed;
//取消关注成功后,该事件会被调用
DMS.MqttMsgUnsubscribed += MqttMsgUnsubscribed;
//当接收到关注的消息后,该事件会被调用
DMS.MqttMsgPublishReceived += MqttMsgPublishReceived;

事件定义

static void MqttMsgPublished(object sender, MqttMsgPublishedEventArgs e)
{
    //do something ...
     Console.WriteLine("MqttMsgPublished");
}
static void ConnectionClosed(object sender, EventArgs e) 
{
    Console.WriteLine("-->ConnectionClosed");
}
static void MqttMsgSubscribed(object sender, MqttMsgSubscribedEventArgs e)
{
    Console.WriteLine("MqttMsgSubscribed");
}
static void MqttMsgUnsubscribed(object sender, MqttMsgUnsubscribedEventArgs e)
{
    Console.WriteLine("MqttMsgUnsubscribed");
}
static void MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
    //打印接收到的消息
    Console.WriteLine("MqttMsgPublishReceived:" + Encoding.UTF8.GetString(e.Message));
}

连接服务器

const string pub_key = "demo";
const string sub_key = "demo";
DMS.Connect(clientId, pub_key, sub_key);

关注话题

const string topic = "test";
//关注成功后,DMS.MqttMsgSubscribed事件会被调用
DMS.Subscribe(topic);

推送消息

const string topic = "test";
const string message = "hello Word";
//推送消息成功后,DMS.MqttMsgPublished事件会被调用
DMS.Publish(topic,message);

取消关注话题

const string topic = "test";
//取消成功后,DMS.MqttMsgUnsubscribed事件会被调用
DMS.Unsubscribe(topic);

断开连接

//断开连接后,DMS.ConnectionClosed事件会被调用
DMS.Disconnect();