在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

對RyanMqtt的QOS消息質量穩定性進行測試

冬至子 ? 來源:Ryan_CW ? 作者:Ryan_CW ? 2023-10-08 14:38 ? 次閱讀

測試環境:stm32F401RCT6、RT-Thread版本: v4.1.0、RT-Thread Studio版本: 2.2.6、網絡硬件使用ec800m移植at_socket使用sal框架。

1、測試介紹
我移植的這個at驅動還不完善,頻繁發送消息時會導致網絡斷連,打開調試進行一些延時就沒問題了。但是斷連的特性反而有助于我們進行qos測試。

因為我們要測試斷網后qos消息質量的穩定性,所以 cleanSessionFlag(清除會話)必須為false
由于我們要測試中途被mqtt服務器踢掉后的效果,所以示例使用的我的mqtt服務器,您如果有興趣測試這個的話請修改配置信息為您的服務器

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

1.jpg

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

1.jpg

emqx截圖,可以看到是20條。但細心的你肯定發現了發送的信息居然不是按順序來的,這是因為emqx設置訂閱的qos2主題,實際顯示將會按照qos2完成時間來進行顯示

1.jpg

網絡正常情況發送,發送qos2消息

1.jpg

2.jpg

模擬發送中途斷網,發送qos1消息
這里模擬的意思是:發送第5條的時候把網絡硬件進行關閉,發送第10條時啟動網絡硬件,觀察發布消息和實際消息是否對得上號

1.jpg

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

1.jpg

模擬發送中途斷網,發送qos2消息
這里模擬的意思是:發送第5條的時候把網絡硬件進行關閉,發送第10條時啟動網絡硬件,觀察發布消息和實際消息是否對得上號
這里我們就遇到了開頭說的ec800m驅動問題,qos2需要較多的網絡交互,ec800直接罷工了。
但是等它重連后我們可以發現,qos2的消息依然可以穩定保證只有一次。(之前我自己進行的測試要比這嚴謹的多,會考慮到多次斷網情況等)

1.jpg

2.jpg

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

1.jpg

2.jpg

模擬發送中途被踢,發送qos2消息
模擬中途被踢:發送20條,在中間的時候手動通過mqtt管理后臺把RyanMqtt客戶端踢掉
可以看到發送了15條,但是收到了21條!是bug嗎?其實不然,這主要是emqx服務器的策略問題,因為是主動剔除emqx服務器會清除會話上下文,導致qos2消息多接收。
所以說重大風險的環境,一定不要只依靠qos2,太多因素會導致意料之外的結果。一定要通過應用層來保證最終一致性

1.jpg

2.jpg

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

1.jpg

網絡正常情況接收,接收qos1消息

1.jpg

2.jpg

網絡正常情況接收,接收qos2消息

1.jpg

2.jpg

模擬接收中途斷網,接收qos1消息
實驗條件:使用mqttx上位機發布10條消息,RyanMqtt收到第5條后重啟網絡硬件,看聯網后是否可以接收到消息

1.jpg

2.jpg

模擬接收中途斷網,接收qos2消息
實驗條件:使用mqttx上位機發布10條消息,RyanMqtt收到第5條后重啟網絡硬件,看聯網后是否可以接收到消息

1.jpg

2.jpg

模擬接收中途被踢,接收qos1消息
模擬接收中途被踢,接收qos2消息
實驗條件:我使用mqttx的自動發送功能,一秒發一條。發送20條消息,當發送5 - 10條后從emqx服務器剔除RyanMqtt客戶端

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接收機
    +關注

    關注

    8

    文章

    1181

    瀏覽量

    53477
  • 上位機
    +關注

    關注

    27

    文章

    942

    瀏覽量

    54815
  • RT-Thread
    +關注

    關注

    31

    文章

    1289

    瀏覽量

    40135
  • STM32F401
    +關注

    關注

    1

    文章

    16

    瀏覽量

    10496
  • MQTT協議
    +關注

    關注

    0

    文章

    97

    瀏覽量

    5379
收藏 人收藏

    評論

    相關推薦

    HarmonyOS應用兼容穩定性測試

    HAP 和 APP 兩種格式,如果未上傳應用,請先從本地上傳一個 HarmonyOS 應用包。 ● 測試時長設置:設置穩定性測試測試時長。 說明 每天只能
    發表于 12-25 10:56

    藥品穩定性試驗箱的作用

    、潮濕等環境下對新藥品進行測試,也可以用作某些特殊需要恒定溫度和恒定濕度藥品的保存箱。藥品穩定性保存  藥品穩定性試驗箱在功能結構上包含了制冷系統、制熱系統、加濕系統等三個部分,這三個
    發表于 06-22 16:29

    瞬態穩定性測試:注意步長

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

    如何測試電源設計的穩定性測量

    產后期因環境變化和/或工作極限條件而變得不穩定。在這些情況下,原型設計可能運行良好,但電源內的相位和增益裕度卻沒在原型測試中得到測試。如果設計人員能夠對電源的穩定性
    發表于 09-20 16:00

    LED燈具的性能及穩定性測試

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

    開關電源穩定性測試 開關電源穩定性

    測出來的結果是不準確的。 圖 3 FRA測量時注入電阻的位置及接線 四、開關電源穩定性測試舉例:在了解影響產品穩定性的因素和判定準則以及怎樣來檢測產品后,就可以對所測的產品的結果進行
    發表于 12-24 18:35

    如何測試LWIP通信穩定性和速率?

    原子哥你好:我咨詢下您,用STM32移植LWIP的話,就你的經驗。穩定性好不好?我發送大一點的數據包。比喻我不斷發送1500Byte左右的數據包。用tcp調試助手接收。這個通信 速率您測試過沒有呢?會不會不穩定???我的目的是想用
    發表于 07-12 04:36

    運放穩定性的標準及測試

    運放穩定性的標準及測試環路增益穩定性舉例
    發表于 04-06 06:30

    服務器穩定性測試方法

    ,如果要進行香港服務器測試就要針對你放置網站的每個細節和功能全面的操作測試,根據每個功能操作下的不同性能來測試。2、多線路測試在對香港服務器
    發表于 09-20 09:56

    RyanMqtt實現MQTT3.1.1協議的客戶端

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

    如何測試ERP系統的穩定性

    一個軟件的穩定性對企業的工作產生著重要的影響,ERP系統如果在使用過程中安全性出現問題的,可能會導致數據的缺失,這將會影響決策。那么如何測試ERP系統的穩定性呢?下面一起來了解一下吧! 測試
    發表于 05-13 17:00 ?1033次閱讀

    電源測試穩定性測量

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

    如何保證電源適配器的質量穩定性

    如何保證電源適配器的質量穩定性? 要保證電源適配器的質量穩定性,需要從設計、制造、測試和驗收等多個環節入手,以下是詳細的措施: 1. 設
    的頭像 發表于 11-23 16:04 ?1097次閱讀

    如何測試DDR內存的穩定性

    工具,可以對內存進行全面的穩定性測試。 操作:通過運行MemTest86,軟件會對內存進行多種復雜運算,從而檢測出內存可能存在的錯誤。 注意事項:
    的頭像 發表于 11-29 15:01 ?518次閱讀

    如何測試晶振的穩定性

    以下是一些常用的方法來測試晶振的穩定性。
    的頭像 發表于 11-29 16:41 ?258次閱讀
    主站蜘蛛池模板: 色多多·com| 久久综合九色婷婷97| 久久精品国产6699国产精| 天天做夜夜做| 免费啪视频观在线视频在线| 性感美女视频黄.免费网站| 黄色一级视频网| 精品久久久久久午夜| 中国黄色一级毛片| 美女露出尿囗| 欧美777| 国模欢欢大尺度| 久久婷婷国产综合精品 | 国产福利你懂的| free chinese 国产精品| 亚洲29p| xvideos国产| 91视频观看| 日本黄色一区| 天天操天天干天天插| 狠狠一区| 国产三级一区| 啪啪中文字幕| 日本色免费| 免费又爽又黄的禁片1000部| 午夜一级| 精品热99| 国产特黄1级毛片| 欧美黑人巨大xxx猛交| 日本免费精品视频| 欧美69色| 四虎国产精品永久在线| 天天想天天干| 在线观看精品视频看看播放| www五月婷婷| 日本口工福利漫画无遮挡| 精品国产三级在线观看| 日本xxxxxxxxx18| 你懂的网站在线观看| 国产高清在线精品| 日本网站免费观看|