欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#對接阿里云IOT平臺進(jìn)行設(shè)備開發(fā)

 更新時間:2022年01月17日 11:59:47   作者:癡者工良  
這篇文章介紹了C#對接阿里云IOT平臺進(jìn)行設(shè)備開發(fā),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一,創(chuàng)建阿里云 IOT 產(chǎn)品、設(shè)備

目前阿里云每月贈送 100 萬條流量,可以免費使用基礎(chǔ)版、高級版,開通后即可免費使用。

阿里云 IOT 平臺地址https://iot.console.aliyun.com/product

登陸開通后,新建測試產(chǎn)品、設(shè)備。

創(chuàng)建產(chǎn)品

產(chǎn)品的定義是,一類硬件、功能、外形完全相同的設(shè)備。所以,添加一個產(chǎn)品后,我們就可以在此類別下添加成千上萬個設(shè)備。

下面的信息要選、設(shè)備、非網(wǎng)關(guān),原因后面說。

設(shè)定一個產(chǎn)品

創(chuàng)建一個產(chǎn)品后,就需要設(shè)定這個產(chǎn)品的特征,它有那些功能?它可以進(jìn)行什么樣的通訊?

定義兩個topic,一個發(fā)布、一個訂閱

名稱為test1、test2

添加一個設(shè)備,記下你設(shè)備的那些設(shè)備名等信息

二,下載SDK、創(chuàng)建項目

SDK 下載 地址https://iot-demos.oss-cn-shanghai.aliyuncs.com/h2/iotx-as-http2-net-sdk.dll?spm=a2c4g.11186623.2.10.57e64c07SGupEH&file=iotx-as-http2-net-sdk.dll

新建一個 .NET Frameork4 控制臺項目,名稱AlyIotIest

添加引用,把下載的 dll 添加進(jìn)去

新建一個類BackMessage.cs

把以下代碼復(fù)制進(jìn)BackMessage(清空以前的代碼),先不用管為什么

using iotxashttp2netsdk.iot.auth.common;
using iotxashttp2netsdk.iot.callback;
using System;
using System.Collections.Generic;
using System.Text;

namespace AlyIotIest
{
    public class 默認(rèn)回調(diào) : IHttp2MessageCallback
    {
        public ConsumeAction Consume(Http2ConsumeMessage http2ConsumeMessage)
        {

            Console.WriteLine("默認(rèn)回調(diào)");
            Console.WriteLine(http2ConsumeMessage.MessageId);
            if (http2ConsumeMessage.Payload.Length != 0)
            {
                Console.WriteLine("收到平臺消息:");

                string a = Encoding.ASCII.GetString(http2ConsumeMessage.Payload);

                Console.WriteLine(a);
            }

            return ConsumeAction.CommitSuccess;
        }
    }
    public class 自定義回調(diào) : IHttp2MessageCallback
    {
        public ConsumeAction Consume(Http2ConsumeMessage http2ConsumeMessage)
        {

            Console.WriteLine("自定義回調(diào) ");
            Console.WriteLine(http2ConsumeMessage.MessageId);
            if (http2ConsumeMessage.Payload.Length != 0)
            {
                Console.WriteLine("收到平臺消息:");

                string a = Encoding.ASCII.GetString(http2ConsumeMessage.Payload);

                Console.WriteLine(a);
            }
            return ConsumeAction.CommitSuccess;
        }
    }
}

三,開始操作、準(zhǔn)備工作

1,Program.cs 需要用到以下命名空間

using System;
using iotxashttp2netsdk.iot.auth.common;
using iotxashttp2netsdk.iot.message;
using System.Net;
using System.Linq;
using System.Text;

2,設(shè)定一個設(shè)備客戶端對象

復(fù)制static MessageClient client; 到Program類鐘

    class Program
    {
        //  步驟 1 定義設(shè)備客戶端 #
        static MessageClient client;

...
...
}

MessageClient 是核心,用于連接服務(wù)器、通訊、訂閱和發(fā)布Topic、觸發(fā)任務(wù),先不管他

四,開始寫代碼

在 Main 方法中寫代碼

步驟 2,添加密鑰信息,在相應(yīng)位置填上你的密鑰

       // 步驟 2 從控制臺獲取 productKey、deviceName、deviceSecret 信息 #
            // 到阿里云IOT物聯(lián)網(wǎng)后臺設(shè)置產(chǎn)品、添加設(shè)備后,可以找到
            string productKey = "   ";
            string deviceName = "   i";
            string deviceSecret = "   ";

步驟 3

 // 步驟 3 標(biāo)記 設(shè)定設(shè)備唯一識別符 clientid
            // 阿里云官方給的例子是 子網(wǎng)IP
            IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
            // 客戶端設(shè)備唯一標(biāo)記
            string clientId = host.AddressList.FirstOrDefault(
                ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToString();
// 地域可用區(qū) ,根據(jù)實際修改
            string regionId = "cn-shanghai";
            string domain = ".aliyuncs.com";
            string endpoint = "https://" + productKey + ".iot-as-http2." + regionId + domain;

步驟 4

            //設(shè)置配置服務(wù)和構(gòu)建客戶端 
            //連接服務(wù)配置項
            Profile profile = new Profile();
            profile.ProductKey = productKey;
            profile.DeviceName = deviceName;
            profile.DeviceSecret = deviceSecret;
            profile.Url = endpoint;
            profile.ClientId = clientId;
            //刪除堆積消息
            profile.CleanSession = true;
            //qos>0消息,SDK發(fā)生異常時可以設(shè)置重,重試次數(shù)最大為3次
            profile.RetryPubCount = 3;
            //重試間隔時間單位為s(秒)
            profile.RetryIntervalTime = 2;
            profile.GetDeviceAuthParams();

            //構(gòu)造客戶端
            client = new MessageClient(profile);

步驟 5

         // 設(shè)置訂閱和發(fā)布的 topic
            string topic = "/" + productKey + "/" + deviceName + "/user/test1";
            string topic2 = "/" + productKey + "/" + deviceName + "/user/test2";
            // 接收數(shù)據(jù),剛連接時
            // 只生效一次
            // 默認(rèn)回調(diào)
            client.DoConnection(new 默認(rèn)回調(diào)());

            //回調(diào)
            // 自定義一個 IHttp2MessageCallback,每次收到消息都用此回調(diào)
            client.SetMessageListener(topic2,new 自定義回調(diào)());

            client.DoSubscribe((string)topic ,msg=> {


                Console.WriteLine ("訂閱服務(wù)端消息");
                Console.WriteLine("msg.Code" + msg.Code);
                Console.WriteLine("topic:" + msg.Message.Topic);
                Console.WriteLine("msg.Message");
                Console.WriteLine("body: " + Encoding.ASCII.GetString(msg.Body));
                Console.WriteLine(msg.Message.MessageId);
            });
            client.DoSubscribe((string)topic2, msg=>
            {
                Console.WriteLine("訂閱服務(wù)端消息");
                Console.WriteLine("msg.Code" + msg.Code);
                Console.WriteLine("topic:" + msg.Message.Topic);
                Console.WriteLine("msg.Message");
                Console.WriteLine("body: " + Encoding.ASCII.GetString(msg.Body));
                Console.WriteLine(msg.Message.MessageId);
            });

步驟 6

添加一個方法

public static void 發(fā)數(shù)據(jù)(string topic,string str)
        {
            //發(fā)消息
            Message message = new Message();
            message.Payload = Encoding.ASCII.GetBytes(str);
            message.Qos = 1;
            client.DoPublish(topic, message, msg =>
            {
                Console.WriteLine("publish topic message, messageId: " + msg.Message.MessageId
                                  + "|| topic:" + msg.Message.Topic
                                  + "|| code: " + msg.Code
                                  + "|| body: " + Encoding.ASCII.GetString(msg.Body));
            });
        }

在 Main 方法內(nèi),后面加上

            while (true)
            {
                Console.WriteLine("輸入數(shù)據(jù)");
                string str = Console.ReadLine();
                if (str.ToUpper() == "EXIT")
                {
                    break;
                }
                發(fā)數(shù)據(jù)("/" + productKey + "/" + deviceName +"/user/test1", str);
            }

            Console.ReadKey();

運行你的項目

五,運行測試

到此這篇關(guān)于C#對接阿里云IOT平臺進(jìn)行設(shè)備開發(fā)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 8.0新特性介紹

    C# 8.0新特性介紹

    C# 語言是在2000發(fā)布的,至今已正式發(fā)布了7個版本,每個版本都包含了許多令人興奮的新特性和功能更新。下面通過本文給大家分享下C# 8.0的三個令人興奮的新特性,需要的朋友參考下吧
    2017-10-10
  • C#?wpf利用附加屬性實現(xiàn)界面上定義裝飾器

    C#?wpf利用附加屬性實現(xiàn)界面上定義裝飾器

    裝飾器是wpf中可以浮在控件上面的一種組件,我們通??梢杂脕韺崿F(xiàn)一些諸如控件拖動點、提示框、自定義鼠標(biāo)等界面功能。本文主要是利用附加屬性實現(xiàn)界面上定義裝飾器,需要的可以參考下
    2022-12-12
  • C#中const,readonly和static關(guān)鍵字的用法介紹

    C#中const,readonly和static關(guān)鍵字的用法介紹

    這篇文章介紹了C#中const,readonly和static關(guān)鍵字的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 使用xmltextreader對象讀取xml文檔示例

    使用xmltextreader對象讀取xml文檔示例

    這篇文章主要介紹了使用xmltextreader對象讀取xml文檔的示例,需要的朋友可以參考下
    2014-02-02
  • C#圖像顏色聚類高效方法實例

    C#圖像顏色聚類高效方法實例

    這篇文章主要介紹了C#圖像顏色聚類高效方法,實例分析了C#實現(xiàn)圖像顏色聚類的方法,需要的朋友可以參考下
    2015-04-04
  • C#實現(xiàn)繪制面形圖表的方法詳解

    C#實現(xiàn)繪制面形圖表的方法詳解

    這篇文章主要介紹了C#實現(xiàn)繪制面形圖表的方法,對于C#初學(xué)者很好的掌握C#圖形繪制有一定的借鑒價值,需要的朋友可以參考下
    2014-07-07
  • C#第三方日志插件Log4net的配置文件詳解

    C#第三方日志插件Log4net的配置文件詳解

    Log4net是一個穩(wěn)定且功能豐富的日志庫,已經(jīng)存在多年并且被廣泛使用,這篇文章主要為大家詳細(xì)介紹了Log4net日志插件的配置文件信息,感興趣的可以了解下
    2024-03-03
  • C#中的委托Delegate

    C#中的委托Delegate

    這篇文章介紹了C#中的委托Delegate,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#實現(xiàn)的中國移動官網(wǎng)手機號碼采集器

    C#實現(xiàn)的中國移動官網(wǎng)手機號碼采集器

    這篇文章主要介紹了C#實現(xiàn)的中國移動官網(wǎng)手機號碼采集器,本文先是采集號碼入庫,同時給出了篩選各類靚號的SQL語句,需要的朋友可以參考下
    2014-10-10
  • C#實現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法示例

    C#實現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法示例

    這篇文章主要介紹了C#實現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法,結(jié)合實例形式總結(jié)分析了Json轉(zhuǎn)換DataTable,以及DataTable導(dǎo)出Excel相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02

最新評論