1. 本文测试了以下内容:
- 设备连接mqtt消耗流量
- 每次心跳消耗流量
- 设备断开消耗流量
- 订阅topic消耗流量
- 上传消息消耗流量
- 下放消息消耗流量。
2. 使用软件
- mqttx(客户端1)
- emqx(客户端2,服务器)
3.分析结果
活动 | 上行流量消耗(物联卡发出) | 下行流量消耗(服务器发出) |
连接mqtt服务器(测试4次,求平均) | 178字节,0.17kb | 9字节,0.0088kb |
心跳(测试10次,求平均) | 2字节,0.002k | 2字节,0.002kb |
订阅topic(测试2次) | 37字节,0.0036kb | 5字节,0.005kb |
发送消息(无订阅者,测试10条,求平均) | 61字节,0.06kb | 0 |
发送消息(有订阅者,测试20条,求平均) | 61字节,0.06kb | 61字节,0.06kb |
断开mqtt服务器(服务器踢掉) | 2字节,0.002kb | 0 |
断开mqtt服务器(客户端主动) | 4字节,0.004kb | 2字节,0.002kb |
4.说明
- 采用用户名,密码认证,长度参考如下
ClientID:ADEGSWPGY/Ilove0000001_s
username:ADEGSWPGY/Ilove0000001_s;12325626;9HP35d;166543111
password:8bb64363198e393410d8da3c784f1f86dbb772b208d19586e9cf23;h01766cd7emacsha256
- 订阅topic为
ADEGSWPGY/Ilove0000001_s/event
- 消息为
{"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*30 | 3000*61=183000字节 |
接收 | 100*30 | 183000字节 |
断开 | 2 | (2+4)*2=12字节 |
总计 | 369KB |
- 其中,除接收和发送外,固定消耗每月11kb,如果每月30MB流量,则可以发送或接收约52万次数据。
- 每月52万次,平均每天1.7万次数据,按每秒发送一次,可以连续发送4.7小时
其他说明
- 本测试根据长连接计算,心跳900s是腾讯云物联网通信的最大值,但考虑到ip地址老化等因素,心跳大于60s可能地址就会被回收,如果设置较大心跳间隔,需要配置GRE隧道(无需心跳,但腾讯云服务器需要)