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 此處就...