MQTT消息大小流量消耗测试

1. 本文测试了以下内容:

  • 设备连接mqtt消耗流量
  • 每次心跳消耗流量
  • 设备断开消耗流量
  • 订阅topic消耗流量
  • 上传消息消耗流量
  • 下放消息消耗流量。

2. 使用软件

  • mqttx(客户端1)
  • emqx(客户端2,服务器)

3.分析结果

活动上行流量消耗(物联卡发出)下行流量消耗(服务器发出)
连接mqtt服务器(测试4次,求平均)178字节,0.17kb9字节,0.0088kb
心跳(测试10次,求平均)2字节,0.002k2字节,0.002kb
订阅topic(测试2次)37字节,0.0036kb5字节,0.005kb
发送消息(无订阅者,测试10条,求平均)61字节,0.06kb0
发送消息(有订阅者,测试20条,求平均)61字节,0.06kb61字节,0.06kb
断开mqtt服务器(服务器踢掉)2字节,0.002kb0
断开mqtt服务器(客户端主动)4字节,0.004kb2字节,0.002kb

4.说明

  1. 采用用户名,密码认证,长度参考如下
    ClientID:ADEGSWPGY/Ilove0000001_s
    username:ADEGSWPGY/Ilove0000001_s;12325626;9HP35d;166543111
    password:8bb64363198e393410d8da3c784f1f86dbb772b208d19586e9cf23;h01766cd7emacsha256
  2. 订阅topic为ADEGSWPGY/Ilove0000001_s/event
  3. 消息为{"t":"love0000003_a","d":6}

5.计算方式

操作前截图,操作后截图,控制变量,差值计算,例如,第一次连接后截图:第一次连接后

6.建议

对应本项目中的数据量,心跳时间900s,考虑用户每月流量用量。
(连接,心跳,订阅,断开时上下行流量均需计入物联网卡中)

活动次数用量
连接2(178+9)*2=374字节
心跳(24 * 60 * 60 / 900)* 30天2880*(2+2)=11520字节
订阅2(37+5)*2=82字节
发送100*303000*61=183000字节
接收100*30183000字节
断开2(2+4)*2=12字节
总计369KB
  1. 其中,除接收和发送外,固定消耗每月11kb,如果每月30MB流量,则可以发送或接收约52万次数据。
  2. 每月52万次,平均每天1.7万次数据,按每秒发送一次,可以连续发送4.7小时

其他说明

  1. 本测试根据长连接计算,心跳900s是腾讯云物联网通信的最大值,但考虑到ip地址老化等因素,心跳大于60s可能地址就会被回收,如果设置较大心跳间隔,需要配置GRE隧道(无需心跳,但腾讯云服务器需要)

  2. 可以参考其他博主相关文章验证补充如:

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
设备端与阿里云IoT平台建立MQTT通道的CONNECT报文有三个关键参数:客户端标识符 (ClientId) ,用户名(User Name),密码(Password)。这三个参数由设备三元组(productKey,deviceName,deviceSecret)按照阿里云IoT签名规则生成。 参数 生成方式 描述 username deviceName+"&"+productKey password sign_hmac(deviceSecret,content) sign_hmac为mqttClientId中的signmethod content为 "clientId${id}deviceName${deviceName}productKey${productKey}timestamp${timestamp}" 其中 id:表示客户端ID,64字符内。 timestamp:表示当前时间毫秒值。 clientId id+"|securemode=3,signmethod=hmacsha1,timestamp="+timestamp+"|" id:表示客户端ID,64字符内。 timestamp:表示当前时间毫秒值。 securemode:表示安全模式:可选值有2(TLS加密)和3(非加密) signmethod:表示签名算法类型。支持hmacmd5,hmacsha1和hmacsha256 2. 三元组接入示例 2.1 设备三元组信息 设备三元组 productKey = a14Xib5kdYd deviceName = light1983432 deviceSecret = oLyaKqVxtRvjH284LdhqVgVUx1UPy6zq 建立MQTT连接时参数 clientId = SN1928339 timestamp = 1539421321846 signmethod = hmacsha1 2.2 参数生成结果 mqttClientId = SN1928339|securemode=3,signmethod=hmacsha1,timestamp=1539421321846| mqttUsername = light1983432&a14Xib5kdYd mqttPassword = b2488041f64f425016b467ee1c94959ebd592ad1 生成password的content content=clientIdSN1928339deviceNamelight1983432productKeya14Xib5kdYdtimestamp1539421321846 2.3 建立连接 mqttClientId作为MQTT客户端标识符 (ClientId) mqttUsername作为MQTT用户名(User Name) mqttPassword作为MQTT密码(Password) 在线Password生成算法验证
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值