一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對RyanMqtt的QOS消息質(zhì)量穩(wěn)定性進(jìn)行測試

冬至子 ? 來源:Ryan_CW ? 作者:Ryan_CW ? 2023-10-08 14:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

測試環(huán)境:stm32F401RCT6、RT-Thread版本: v4.1.0、RT-Thread Studio版本: 2.2.6、網(wǎng)絡(luò)硬件使用ec800m移植at_socket使用sal框架。

1、測試介紹
我移植的這個(gè)at驅(qū)動還不完善,頻繁發(fā)送消息時(shí)會導(dǎo)致網(wǎng)絡(luò)斷連,打開調(diào)試進(jìn)行一些延時(shí)就沒問題了。但是斷連的特性反而有助于我們進(jìn)行qos測試。

因?yàn)槲覀円獪y試斷網(wǎng)后qos消息質(zhì)量的穩(wěn)定性,所以 cleanSessionFlag(清除會話)必須為false
由于我們要測試中途被mqtt服務(wù)器踢掉后的效果,所以示例使用的我的mqtt服務(wù)器,您如果有興趣測試這個(gè)的話請修改配置信息為您的服務(wù)器

要測試的功能如下圖。都是發(fā)送20條消息。

1.jpg

2、測試發(fā)布QOS1 / QOS2消息
網(wǎng)絡(luò)正常情況發(fā)送,發(fā)送qos1消息
打印日志上面紅框表示RyanMqtt發(fā)布了多少條消息也就是 RyanMqttPublish 接口回復(fù)ok的次數(shù),下面表示真正完成發(fā)布了多少條

1.jpg

emqx截圖,可以看到是20條。但細(xì)心的你肯定發(fā)現(xiàn)了發(fā)送的信息居然不是按順序來的,這是因?yàn)閑mqx設(shè)置訂閱的qos2主題,實(shí)際顯示將會按照qos2完成時(shí)間來進(jìn)行顯示

1.jpg

網(wǎng)絡(luò)正常情況發(fā)送,發(fā)送qos2消息

1.jpg

2.jpg

模擬發(fā)送中途斷網(wǎng),發(fā)送qos1消息
這里模擬的意思是:發(fā)送第5條的時(shí)候把網(wǎng)絡(luò)硬件進(jìn)行關(guān)閉,發(fā)送第10條時(shí)啟動網(wǎng)絡(luò)硬件,觀察發(fā)布消息和實(shí)際消息是否對得上號

1.jpg

看上面日志咱們發(fā)送了12條,emqx為什么會收到13條呢?
這就是qos1的特性了,允許至少一次的重復(fù)接收,咱們斷網(wǎng)重新連接的時(shí)候根據(jù)qos1的特性咱們是可以重新發(fā)送的。

1.jpg

模擬發(fā)送中途斷網(wǎng),發(fā)送qos2消息
這里模擬的意思是:發(fā)送第5條的時(shí)候把網(wǎng)絡(luò)硬件進(jìn)行關(guān)閉,發(fā)送第10條時(shí)啟動網(wǎng)絡(luò)硬件,觀察發(fā)布消息和實(shí)際消息是否對得上號
這里我們就遇到了開頭說的ec800m驅(qū)動問題,qos2需要較多的網(wǎng)絡(luò)交互,ec800直接罷工了。
但是等它重連后我們可以發(fā)現(xiàn),qos2的消息依然可以穩(wěn)定保證只有一次。(之前我自己進(jìn)行的測試要比這嚴(yán)謹(jǐn)?shù)亩啵瑫紤]到多次斷網(wǎng)情況等)

1.jpg

2.jpg

模擬發(fā)送中途被踢,發(fā)送qos1消息
模擬中途被踢:發(fā)送20條,在中間的時(shí)候手動通過mqtt管理后臺把RyanMqtt客戶端踢掉
這個(gè)測試真考驗(yàn)手速啊,試了4次才成功。
可以看到發(fā)送到15條的時(shí)候被mqtt服務(wù)器給踢掉了,等待重連后可以正常同步

1.jpg

2.jpg

模擬發(fā)送中途被踢,發(fā)送qos2消息
模擬中途被踢:發(fā)送20條,在中間的時(shí)候手動通過mqtt管理后臺把RyanMqtt客戶端踢掉
可以看到發(fā)送了15條,但是收到了21條!是bug嗎?其實(shí)不然,這主要是emqx服務(wù)器的策略問題,因?yàn)槭侵鲃犹蕹齟mqx服務(wù)器會清除會話上下文,導(dǎo)致qos2消息多接收。
所以說重大風(fēng)險(xiǎn)的環(huán)境,一定不要只依靠qos2,太多因素會導(dǎo)致意料之外的結(jié)果。一定要通過應(yīng)用層來保證最終一致性

1.jpg

2.jpg

2、測試訂閱QOS1 / QOS2消息
為了方便觀察效果,我們使用emqx的腳本功能,給所有發(fā)送消息尾部加一個(gè)0 - 1000的隨機(jī)值。方便觀察消息接收情況。
腳本如下

1.jpg

網(wǎng)絡(luò)正常情況接收,接收qos1消息

1.jpg

2.jpg

網(wǎng)絡(luò)正常情況接收,接收qos2消息

1.jpg

2.jpg

模擬接收中途斷網(wǎng),接收qos1消息
實(shí)驗(yàn)條件:使用mqttx上位機(jī)發(fā)布10條消息,RyanMqtt收到第5條后重啟網(wǎng)絡(luò)硬件,看聯(lián)網(wǎng)后是否可以接收到消息

1.jpg

2.jpg

模擬接收中途斷網(wǎng),接收qos2消息
實(shí)驗(yàn)條件:使用mqttx上位機(jī)發(fā)布10條消息,RyanMqtt收到第5條后重啟網(wǎng)絡(luò)硬件,看聯(lián)網(wǎng)后是否可以接收到消息

1.jpg

2.jpg

模擬接收中途被踢,接收qos1消息
模擬接收中途被踢,接收qos2消息
實(shí)驗(yàn)條件:我使用mqttx的自動發(fā)送功能,一秒發(fā)一條。發(fā)送20條消息,當(dāng)發(fā)送5 - 10條后從emqx服務(wù)器剔除RyanMqtt客戶端

尷尬的發(fā)現(xiàn)沒法測試,上面測試發(fā)布消息剔除的時(shí)候說過emqx服務(wù)器的剔除會清除會話信息,清除后會話信息,雖然RyanMqtt依然保留著訂閱主題信息,但是emq服務(wù)器的訂閱信息不存在了。
所以不管有沒有使能clearSession,都非常推薦在連接成功回調(diào)函數(shù)中訂閱主題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接收機(jī)
    +關(guān)注

    關(guān)注

    8

    文章

    1221

    瀏覽量

    54372
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    963

    瀏覽量

    55699
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1385

    瀏覽量

    41673
  • STM32F401
    +關(guān)注

    關(guān)注

    1

    文章

    16

    瀏覽量

    10648
  • MQTT協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    5875
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS應(yīng)用兼容穩(wěn)定性測試

    HAP 和 APP 兩種格式,如果未上傳應(yīng)用,請先從本地上傳一個(gè) HarmonyOS 應(yīng)用包。 ● 測試時(shí)長設(shè)置:設(shè)置穩(wěn)定性測試測試時(shí)長。 說明 每天只能
    發(fā)表于 12-25 10:56

    藥品穩(wěn)定性試驗(yàn)箱的作用

    、潮濕等環(huán)境下對新藥品進(jìn)行測試,也可以用作某些特殊需要恒定溫度和恒定濕度藥品的保存箱。藥品穩(wěn)定性保存  藥品穩(wěn)定性試驗(yàn)箱在功能結(jié)構(gòu)上包含了制冷系統(tǒng)、制熱系統(tǒng)、加濕系統(tǒng)等三個(gè)部分,這三個(gè)
    發(fā)表于 06-22 16:29

    瞬態(tài)穩(wěn)定性測試:注意步長

    簡單處理后,John 選擇了能達(dá)到 45 度相位裕度的 RISO 值,然后就可以在工作臺上進(jìn)行結(jié)果測試。如果您遇到了同樣的問題,那么需要小心。大部分在仿真中測試穩(wěn)定性的高級方法通常在工
    發(fā)表于 09-20 15:37

    如何測試電源設(shè)計(jì)的穩(wěn)定性測量

    產(chǎn)后期因環(huán)境變化和/或工作極限條件而變得不穩(wěn)定。在這些情況下,原型設(shè)計(jì)可能運(yùn)行良好,但電源內(nèi)的相位和增益裕度卻沒在原型測試中得到測試。如果設(shè)計(jì)人員能夠?qū)﹄娫吹?b class='flag-5'>穩(wěn)定性
    發(fā)表于 09-20 16:00

    LED燈具的性能及穩(wěn)定性測試

    穩(wěn)定性測試。費(fèi)思方案設(shè)備:電源:FTG系列電源。FTP系列電源(供電)負(fù)載:FT6100系列多通道電子負(fù)載,(用于分配個(gè)通道電流)實(shí)現(xiàn)原理:負(fù)載能夠精準(zhǔn)快速的控制回路中的電流,實(shí)現(xiàn)恒流輸出。并且可以實(shí)現(xiàn)
    發(fā)表于 12-07 15:00

    開關(guān)電源穩(wěn)定性測試 開關(guān)電源穩(wěn)定性

    測出來的結(jié)果是不準(zhǔn)確的。 圖 3 FRA測量時(shí)注入電阻的位置及接線 四、開關(guān)電源穩(wěn)定性測試舉例:在了解影響產(chǎn)品穩(wěn)定性的因素和判定準(zhǔn)則以及怎樣來檢測產(chǎn)品后,就可以對所測的產(chǎn)品的結(jié)果進(jìn)行
    發(fā)表于 12-24 18:35

    如何測試LWIP通信穩(wěn)定性和速率?

    原子哥你好:我咨詢下您,用STM32移植LWIP的話,就你的經(jīng)驗(yàn)。穩(wěn)定性好不好?我發(fā)送大一點(diǎn)的數(shù)據(jù)包。比喻我不斷發(fā)送1500Byte左右的數(shù)據(jù)包。用tcp調(diào)試助手接收。這個(gè)通信 速率您測試過沒有呢?會不會不穩(wěn)定???我的目的是想用
    發(fā)表于 07-12 04:36

    運(yùn)放穩(wěn)定性的標(biāo)準(zhǔn)及測試

    運(yùn)放穩(wěn)定性的標(biāo)準(zhǔn)及測試環(huán)路增益穩(wěn)定性舉例
    發(fā)表于 04-06 06:30

    服務(wù)器穩(wěn)定性測試方法

    ,如果要進(jìn)行香港服務(wù)器測試就要針對你放置網(wǎng)站的每個(gè)細(xì)節(jié)和功能全面的操作測試,根據(jù)每個(gè)功能操作下的不同性能來測試。2、多線路測試在對香港服務(wù)器
    發(fā)表于 09-20 09:56

    RyanMqtt實(shí)現(xiàn)MQTT3.1.1協(xié)議的客戶端

    使用,作者不對使用此庫造成的任何經(jīng)濟(jì)損失負(fù)責(zé)。(盡管此庫QOS2消息等級經(jīng)過很多測試,但是異步組件由于諸多因素例如波動非常大的網(wǎng)絡(luò)甚至無法建立穩(wěn)定的tcp連接、mqtt服務(wù)端的策略配置等,無法做到絕對的實(shí)時(shí)性,需要用戶手動做到數(shù)
    發(fā)表于 12-01 15:19

    如何測試ERP系統(tǒng)的穩(wěn)定性

    一個(gè)軟件的穩(wěn)定性對企業(yè)的工作產(chǎn)生著重要的影響,ERP系統(tǒng)如果在使用過程中安全性出現(xiàn)問題的,可能會導(dǎo)致數(shù)據(jù)的缺失,這將會影響決策。那么如何測試ERP系統(tǒng)的穩(wěn)定性呢?下面一起來了解一下吧! 測試
    發(fā)表于 05-13 17:00 ?1123次閱讀

    電源測試穩(wěn)定性測量

    電源測試穩(wěn)定性測量
    發(fā)表于 11-07 08:07 ?7次下載
    電源<b class='flag-5'>測試</b>:<b class='flag-5'>穩(wěn)定性</b>測量

    如何保證電源適配器的質(zhì)量穩(wěn)定性?

    如何保證電源適配器的質(zhì)量穩(wěn)定性? 要保證電源適配器的質(zhì)量穩(wěn)定性,需要從設(shè)計(jì)、制造、測試和驗(yàn)收等多個(gè)環(huán)節(jié)入手,以下是詳細(xì)的措施: 1. 設(shè)
    的頭像 發(fā)表于 11-23 16:04 ?1710次閱讀

    如何測試DDR內(nèi)存的穩(wěn)定性

    工具,可以對內(nèi)存進(jìn)行全面的穩(wěn)定性測試。 操作:通過運(yùn)行MemTest86,軟件會對內(nèi)存進(jìn)行多種復(fù)雜運(yùn)算,從而檢測出內(nèi)存可能存在的錯(cuò)誤。 注意事項(xiàng):
    的頭像 發(fā)表于 11-29 15:01 ?2549次閱讀

    如何測試晶振的穩(wěn)定性

    以下是一些常用的方法來測試晶振的穩(wěn)定性。
    的頭像 發(fā)表于 11-29 16:41 ?974次閱讀