Http介面封裝Mqtt協議 C

2022-01-12 23:46:46 字數 2380 閱讀 4668

icache icache)

//是客戶端連線成功時觸發的事件

mqttclient.connected+=connected;

//是客戶端斷開連線時觸發的事件

mqttclient.disconnected+=disconnected;

//連線伺服器

mqttclient.connectasync(options);

}

public async task publishasync(string topic, string content)

public async task subscribeasync(string topic)

隨webapi應用自啟動單例mqttclient去消費訊息

var mqttconfig = new mqttconfig

;mqttconfig.topiclist = new list()

;_mqttnetclient = new mqttnetclient(mqttconfig, receivedmessagehandler, _cache);

else

:";var _cache = _serviceprovider.getservice();

_cache.insertasync(cachekey, payload, 5 * 60);

}}

public async task> publishmessage(publishmessageinmodel publishinmodel)

:"; //8秒為超時

var endtime = datetime.now.addseconds(8);

var received = false;

var cachemsg = string.empty;

while (!received)

}//快取不為空,代表收到了mqtt客戶端的響應

if (cachemsg != null)};}

return new baseoutmodel};}

//如果topic為空,則只需要發布訊息就好

await _mqttnetclient.publishmessageasync(publishinmodel.topic, publishinmodel.content);

return new baseoutmodel };

}

引數名

必選型別

說明topic

是string

發布的topic

content

是string

發布的訊息體,需要base64字串

receivetopic

否string

接收訊息topic【只有不為空,才會去處理接收裝置端mqtt的回覆訊息】

devicesn

是string

裝置編號

引數名型別

說明data - content

string

回覆訊息的內容

data - receivestatus

integer

回覆狀態【1 已回覆,0 未回覆 即超時】

code

integer

返回狀態碼【200正常,0有錯誤】

message

string

錯誤描述,code為0使用

1、在startup中將httpclient注入ioc

services.addhttpclient("iotmqtt", x =>

);

2、呼叫
//請求mqtt的訊息體

var content = new

};//請求入參模型

//如果當前方法用async非同步修飾,請不要.result 請await

介面測試 HTTP協議

1.http 超文字傳輸協議,是用於www伺服器傳輸超文字到本地瀏覽器的傳輸協議。2.http協議包括哪些請求呢?get 請求指定的頁面資訊,並返回實體主體 post 向指定的資源提交資料進行處理請求,資料被包含在請求體中 head 類似get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 o...

介面測試 http協議簡介

在做介面測試的過程中,都會遇到一些http協議,什麼是http協議?http協議是hyper text transfer protocol 超文字傳輸協議 的縮寫,是用於從全球資訊網 www world wide web 伺服器傳輸超文字到本地瀏覽器的傳送協議。基於tcp的應用層協議,它不關心資料傳...

介面和http協議(一)

一 介面 硬體介面和軟體介面 軟體介面 前台和後台傳遞資料的通道 api web api http api 和 其他api 我們通常所說的api就是web api http api,需要聯網,需要使用web協議,而其他api不需要聯網,不需要使用web協議,比如os.path.abspath 此處就...