当前位置:首页 » 云服务器 » onenet的mqtt服务器地址

onenet的mqtt服务器地址

发布时间: 2023-04-23 23:16:46

1. 如何在 JMeter 中使用 MQTT 插件

JMeter 内置 HTTP/HTTPS、TCP 等支持多种协议,还具备插件扩展机制。

MQTT 协议作为物联网界的主流协议,虽然并非 JMeter 自带的协议类型,但在物联网测试场景中极为普遍。为了支持 MQTT 协议的规模测试,EMQ 映云科技开发了基于 JMeter 的 MQTT 协议开源测试插件: https://github.com/xmeter-net/mqtt-jmeter 。

经过几个版本的迭代,目前 JMeter MQTT 插件的最新版本为 2.0.2,支持连接、消息发布、消息订阅等多种采样器,并可通过组合构建更复杂的测试场景。

本文我们将具体介绍如何在 JMeter 中使用 MQTT 插件。

MQTT 插件的安装方式与其他 JMeter 第三方插件类似。

连接采样器模拟物联网设备,发起 MQTT 连接。

Server name or IP: 指向被测 MQTT 服务器地址

Port number: 以 EMQ X 为例,默认 TCP 连接的端口是 1883, SSL 连接则是 8883。具体的端口请参照服务器的具体配置。

MQTT version : 目前支持 MQTT 3.1及3.1.1版本。

Timeout: 连接超时设置,以秒为单位。

Protocols: 支持TCP、SSL、WS 和 WSS 方式连接 MQTT 服务器。当选择 SSL 或 WSS 加密通道连接时,可以选择单向或者双向认证(Dual)。如果希望进行双向认证,还需要指定相应的客户端证书(p12证书),以及对应的文件保护密码(Secret)。

User authentication: 如果 MQTT 服务器配置了用户认证,需要提供相应的用户名( User name )和密码( Password )。

ClientId: 虚拟用户的标识。如果勾选了“Add random suffix for ClientId”,将会在 ClientId 的基础上给每个虚拟用户再添加一个 uuid 串作为后缀,整个作为虚拟用户标识。

Keep alive(s): 心跳信号发送间隔。例如,300 表示客户端每隔 300 秒向服务器发出 ping 请求,以保持连接活跃。

Connect attempt max: 第一次连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。如果希望一直尝试重连,可以设为 -1。

Reconnect attempt max: 后继连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。如果希望一直尝试重连,可以设为 -1。

Clean session : 如果希望在连接之间保留会话状态,可以将该选项设为 false。如果不希望在新的连接中保留会话状态,则将该项设为true。

消息发布采样器复用连接采样器中建立的 MQTT 连接,向目标 MQTT 服务器发布消息。

QoS Level: 服务质量,取值为 0,1,2,分别代表 MQTT 协议规范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精确一次(EXACTLY_ONCE)

Retained messages : 如果希望使用“保留消息”,可将该选项设为 true,MQTT 服务器端将会存储插件发布的保留消息及其 QoS,并在相应 topic 上发生订阅时,直接将最后一条保留消息投递给订阅端,使得订阅端不必等待即可获取发布端的最新状态值。

Topic name: 发布消息所属的主题。

Add timestamp in payload: 如果勾选,发布的消息体开头会附带当前时间戳,配合消息订阅采样器的 Payload includes timestamp 选项,可以在消息接收端计算消息达到的延时。如果不勾选则只发送实际的消息体。

Payloads Message type: 目前支持三种消息类型

消息发布采样器复用连接采样器中建立的 MQTT 连接,从目标 MQTT 服务器上订阅消息。

QoS Level: 服务质量,含义与消息发布采样器相同。

Topic name(s): 订阅消息所属的主题。支持单个消息订阅采样器订阅多个主题,主题之间用逗号分隔。

Payload includes timestamp: 如果勾选,会从消息体开头处解析发送时间戳,配合消息发布采样器的 Add timestamp in payload 选项,可以用于计算消息的接收延时。如果不勾选则只解析实际的消息体。

Sample on : 采样方式,默认为" specified elapsed time(ms) ",即每隔指定的毫秒时间采样一次。也可以选择" number of received messages ",即每接收到指定的消息数采样一次。

Debug response: 如果勾选,消息内容会打印在 JMeter 的响应结果中。该选项主要用于调试目的,正式运行测试不建议勾选,以免影响测试效率。

断开连接采样器中建立的 MQTT 连接。

本文我们介绍了 JMeter MQTT 插件的各测试组件,在下期文章中我们将针对不同的测试场景详细介绍如何用 MQTT 插件来构建测试脚本

2. Android 中使用MQTT(第一篇)

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。它是一种发布/订阅,极其简单和轻量级的消息传递协议,专为受限设备和低带宽,高延迟或不可靠的网络而设计。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境。相对于XMPP,MQTT更加轻量级,并且占用的宽带低。

MQTT协议有以下特点:

那么问题来了?重连连接成功后重复接收到最后一条消息
MQTT推送消息订阅端重复接收问题。
(背景)订阅端断开的时候,发布端多次推送消息。
(现象)订阅端启动时,接收到最后一条推送消息有两次;即使Qos设置为2;依然是两次。
经排查是因为
MqttMessage的Retained设置为了true;
该值很多文章上只说了是 消息保留机制,若设置为true,mqtt服务器会保留每次发布的消息;较少提到 若订阅某主题的客户端重启,则会把此主题之前发布的消息重新推送到客户端。该值默认为false;去掉修改该值即可
那么问题来了?重连连接后手动那么多遗漏的消息,怎么选择只接收最新的一条消息呢?
MQTT推送消息订阅端重复接收问题。
(背景)订阅端断开的时候,发布端多次推送消息。
(现象)订阅端启动时,接收到msg1,msg2,msg3 (这三个消息都是同一个类型消息,只需要处理最新的msg3就好,不然界面会刷新三次)这个谁有什么好办法没呢?

GitHub地址: https://github.com/eclipse/paho.mqtt.android
mqtt的官方文档: http://mqtt.org/documentation
Github上有中文翻译: https://github.com/mcxiaoke/mqtt

在mole的build.gradle文件中添加依赖

在 AndroidManifest.xml 添加限权

在 AndroidManifest.xml 注册Service (MyMqttService为自己写的服务,下文会讲到)

3. Centos搭建mqtt

本文使用emqx搭建mqtt: 官方地址传送门

1.查看openssl版本

一般情况,centos7版本为1.0.2,mqtt的框架emqx必须大于1.0.2,所以如果低于该版本请升级: centos升级openssl教程传送门

2.安装

3.查看防火墙
如果当前服务器打开了防火墙,需要将防火墙相应端口进行配置。

4.进入etc/emqx目录

5.修改配置文件emqx.conf

修改配置文件内容。

6.打开配置网页
登录网页端后台: http://xx.xx.xx.xx:18083/

7.配置网页打开插件emqx_auth_mnesia
网页端->插件->emqx_auth_mnesia->启动

8.配置mqtt用户名和密码

修改文件内容:

9.配置acl主题权限

修改文件内容:

10.重新加载acl配置文件

11.重新启动emqx

4. Android使用MQTT通讯

主要讲下Android如何使用MQTT通讯。用到漏侍的软件或者框架有:

EMQ: https://www.emqx.io/cn/
org.eclipse.paho的MQTT通讯框架: https://github.com/eclipse/paho.mqtt.android

如果已经有MQTT相关服务返尺吵,可以跳过第一项,从第二项开始看。

1.安装所需要的依困吵赖包

2.使用以下命令设置稳定存储库,以 CentOS7 为例

3.安装最新版本的 EMQ X

4.安装特定版本的 EMQ X

5.启动 EMQ X

地址:xxx.xxx.xxx:18083,地址为服务器ip或者域名,端口为18083端口

1.在Android中导入依赖

项目地址: https://github.com/eclipse/paho.mqtt.android
2.创建MQTT连接的一个Service

5. 如何配置rabbitmqtt服务器的ip地址

RabbitMQ Server安装
################################################
1.安装Erlang
sudo yum install erlang

2.安装RabbitMQ Server
需要先导入key
sudo rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
可先将内容保存至文本文件,如,rabbitmq-signing-key-public.asc.txt
sudo rpm --import rabbitmq-signing-key-public.asc.txt

3.安装rabbitmq-server-3.4.1-1.noarch.rpm
sudo yum install rabbitmq-server-3.4.1-1.noarch.rpm

4.启动RabbitMQ Server
注册为系统服务
sudo chkconfig rabbitmq-server on
启动RabbitMQ Server
sudo /etc/init.d rabbitmq-server stop/start/etc
sudo service rabbitmq-server stop/start/etc

5.若启动失败检测端口是否被占用
4369 (epmd), 25672 (Erlang distribution)
5672, 5671 (AMQP 0-9-1 without and with TLS)
15672 (if management plugin is enabled)
61613, 61614 (if STOMP is enabled)
1883, 8883 (if MQTT is enabled)

热点内容
数空车床编程 发布:2025-05-10 08:48:48 浏览:90
脚本禁英雄 发布:2025-05-10 08:46:47 浏览:430
plc编程软件gxdeveloper 发布:2025-05-10 08:43:46 浏览:873
沼气压缩 发布:2025-05-10 08:38:40 浏览:271
阿里云服务器centos 发布:2025-05-10 08:37:14 浏览:246
安卓手机配什么收音麦 发布:2025-05-10 08:33:37 浏览:373
安卓手机如何边玩游戏边视频 发布:2025-05-10 08:30:27 浏览:192
在哪里观看登录密码 发布:2025-05-10 08:28:50 浏览:212
哔哩哔哩视频默认存储位置 发布:2025-05-10 08:28:48 浏览:672
php自带函数 发布:2025-05-10 08:22:00 浏览:201