SpringBoot连接EMQX Mqtt无权连接(5)

配置用户名多空格致错误的教训
博客讲述了因配置里用户名多打一个空格,导致用户名和密码错误的情况,这是一个值得吸取的教训。

其实用户名和密码错了

配置里面用户名多打了一个空格,血泪教训

### 如何使用 Spring Boot 连接 EMQX MQTT Broker #### 导入 Maven 依赖 为了使 Spring Boot 应用程序能够与 EMQXMQTT broker 对话,需引入必要的库。这可以通过在 `pom.xml` 文件中添加如下所示的依赖项完成[^2]。 ```xml <dependencies> <!-- mqtt相关 --> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-stream</artifactId> </dependency> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mqtt</artifactId> </dependency> </dependencies> ``` #### 配置 MQTT 客户端连接选项 创建一个用于存储 MQTT 连接参数的类,比如名为 `MqttConfig.java` 。在此文件内定义静态常量字符串表示服务器地址以及端口号,并设置其他必要属性如用户名密码等(如果适用),同时还可以利用 `MqttConnectOptions` 类来指定更多高级特性,例如遗嘱消息[^3]。 ```java import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; public class MqttConfig { public static final String BROKER_URL = "tcp://broker.emqx.io:1883"; private static final String CLIENT_ID = "test_client"; public static void main(String[] args) throws Exception{ // 创建客户端实例并初始化 MqttClient client = new MqttClient(BROKER_URL, CLIENT_ID); // 设置连接选项 MqttConnectOptions options = new MqttConnectOptions(); options.setCleanSession(true); // 清理会话 // 设定遗嘱消息 (可选) options.setWill("will/topic", "client disconnected".getBytes(), 0, false); try { // 建立连接 client.connect(options); System.out.println("Connected to the broker."); // 断开前关闭资源 if (!client.isConnected()) { client.disconnect(); System.out.println("Disconnected from the broker."); } } catch(Exception e){ throw new RuntimeException(e.getMessage()); } } } ``` 上述代码片段展示了如何建立到 EMQX MQTT Broker 的基本连接过程,包括指定了当客户端意外断线时发送给特定主题的一条预设通知即所谓的“遗嘱”。 #### 启动应用程序测试连通性 确保所有配置无误之后编译运行此 Java 程序即可验证能否正常接入目标Broker服务。如果有任何异常情况发生,则应仔细检查网络状况或是认证凭证的有效性和准确性等问题所在之处。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值