package com.tyjt.ccpparking.config;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttClientPersistence;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*/
@Slf4j
@Data
@Configuration
public class MqttConfig {
@Value("${mqtt.client.username}")
private String username;
@Value("${mqtt.client.password}")
private String password;
@Value("${mqtt.client.serverURI}")
private String serverURI;
@Value("${mqtt.client.clientId}")
private String clientId;
@Bean("tyjt")
public MqttClient mqttClient(MqttClientPersistence persistence) throws MqttException {
try {
MqttClient mqttClient = new MqttClient(serverURI, clientId, persistence);
// QoS0,At most once,至多一次;
// QoS1,At least once,至少一次;
// QoS2,Exactly once,确保只有一次。
MqttConnectOptions connectOptions = getMqttConnectOptions();
MqttCallBack mqttCallBack = new MqttCallBack(mqttClient);
mqttClient.setCallback(mqttCallBack);
mqttClient.connect(connectOptions);
return mqttClient;
} catch (MqttException mqttException) {
log.error("初始化mqtt client失败!", mqttException);
throw mqttException;
}
}
private MqttConnectOptions getMqttConnectOptions() {
MqttConnectOptions connectOptions = new MqttConnectOptions();
connectOptions.setUserName(username);
connectOptions.setPassword(password.toCharArray());
connectOptions.setCleanSession(true);
connectOptions.setAutomaticReconnect(true);
return connectOptions;
}
@Bean
@ConditionalOnMissingBean(MqttClientPersistence.class)
public MqttClientPersistence mqttClientPersistence() {
return new MemoryPersistence();
}
@Bean
public MqttListenerAnnotationBeanPostProcessor mqttListenerAnnotationBeanPostProcessor() {
return new MqttListenerAnnotationBeanPostProcessor();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
订阅emqx的线上代码,可直接使用
共35个文件
java:15个
class:9个
yml:2个
需积分: 48 24 下载量 49 浏览量
2022-12-27
11:20:54
上传
评论
收藏 87KB ZIP 举报
温馨提示
emqx ,springboot ,可直接使用,
资源推荐
资源详情
资源评论
收起资源包目录
ccp-parking.zip (35个子文件)
ccp-parking
HELP.md 1KB
mvnw.cmd 7KB
ccp-parking.iml 8KB
pom.xml 2KB
src
test
java
proto
parkingPoleState.proto 578B
com
tyjt
proto
com
tyjt
ccpparking
CcpParkingApplicationTests.java 224B
main
resources
application.yml 197B
java
com
tyjt
ccpparking
schedule
ScheduledTask.java 1KB
FrameTask.java 1KB
CcpParkingApplication.java 332B
mgr
Mgr.java 522B
msg
HBHandler.java 454B
PoleChangeHandler.java 442B
PoleStateHandler.java 442B
config
DataHandlerManager.java 867B
MqttListener.java 284B
MqttConfig.java 3KB
MqttListenerAnnotationBeanPostProcessor.java 1KB
MqttCallBack.java 2KB
MsgHandler.java 304B
SubEmqxStarter.java 391B
.mvn
wrapper
maven-wrapper.properties 233B
maven-wrapper.jar 57KB
target
classes
application.yml 197B
com
tyjt
ccpparking
CcpParkingApplication.class 757B
msg
HBHandler.class 994B
config
SubEmqxStarter.class 785B
MqttListenerAnnotationBeanPostProcessor.class 2KB
MqttListener.class 512B
MqttCallBack.class 4KB
DataHandlerManager.class 2KB
MqttConfig.class 6KB
MsgHandler.class 313B
generated-sources
annotations
mvnw 10KB
.gitignore 395B
共 35 条
- 1
资源评论
香菜+
- 粉丝: 5w+
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功