天天看點

基于開源 Net MQTT Client 連接配接阿裡雲物聯網平台

概述

前面分别介紹了基于開源MQTT Client Java及Python語言連接配接阿裡雲物聯網平台的示例,這裡使用M2Mqtt Client C#進行測試,結合自定義Topic示範消息的上下行。

操作步驟

1、安裝

M2Mqtt
基于開源 Net MQTT Client 連接配接阿裡雲物聯網平台

2、Code sample

using System;
using System.Text;
using uPLibrary.Networking.M2Mqtt;
using uPLibrary.Networking.M2Mqtt.Messages;

namespace MQTTDemo
{
    class Program
    {
        //private MqttClient client;
        static void Main(string[] args)
        {
            string ServerUrl = "*****.iot-as-mqtt.cn-shanghai.aliyuncs.com";
            string UserName = "******";
            string Password = "******";
            string clientId = "******";

            ConnectMqtt(ServerUrl, clientId, UserName, Password);

            Console.ReadKey();
        }

        static void ConnectMqtt(string targetServer, string mqttClientId, string mqttUserName, string mqttPassword)
        {
            MqttClient client = new MqttClient(targetServer);
            client.ProtocolVersion = MqttProtocolVersion.Version_3_1_1;

            client.Connect(mqttClientId, mqttUserName, mqttPassword, false, 60);
            client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;

            // 在産品控制台建立對應的自定義Topic,然後在裝置Topic清單即可擷取
            string PubTopic = "/******/******/user/Data1";
            string SubTopic = "/******/******/user/Data2";

            // 釋出消息到自定義Topic
            string content = "{'content':'msg from :" + mqttClientId + ", Hello World'}";
            var id = client.Publish(PubTopic, Encoding.UTF8.GetBytes(content));

            // 從自定義Topic訂閱消息
            client.Subscribe(new string[] { SubTopic }, new byte[] { 0 });
        }

        /// <summary>
        /// 設定訂閱回調
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void Client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            // handle message received
            string topic = e.Topic;
            string message = Encoding.UTF8.GetString(e.Message);
            Console.WriteLine("Device receive message topic :" + topic + " ,the message body is " + message);
        }
    }
}           
簽名方式的擷取參考 連結

3、消息上行檢視

基于開源 Net MQTT Client 連接配接阿裡雲物聯網平台

4、下行消息測試

基于開源 Net MQTT Client 連接配接阿裡雲物聯網平台
基于開源 Net MQTT Client 連接配接阿裡雲物聯網平台

更多參考

C#語言.NET平台接入 基于開源JAVA MQTT Client連接配接阿裡雲IoT 阿裡雲物聯網平台Qucik Start 基于開源Python MQTT Client連接配接阿裡雲IoT

繼續閱讀