国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot2.0集成MQTT消息推送功能實現(xiàn)

瀏覽:112日期:2023-03-16 18:23:16

這幾天在弄后端管理系統(tǒng)向指定的Android客戶端推送消息的功能模塊,查閱了網(wǎng)上很多博客介紹的許多方式,最終選擇基于MQTT協(xié)議來實現(xiàn),MQTT是一個輕量級的消息發(fā)布/訂閱協(xié)議,它是實現(xiàn)基于手機客戶端的消息推送服務(wù)器的理想解決方案。

實現(xiàn)MQTT協(xié)議的中間件有很多,我用的是Apollo服務(wù)器,如何搭建MQTT服務(wù)器,請查閱其他資料。這里,主要介紹SpringBoot2.0集成MQTT實現(xiàn)消息推送的功能。好,正式開始:

本文采用Gateway綁定的方式,網(wǎng)上也有介紹但不全面,還有其他采用Paho MQTT Client庫的方式實現(xiàn)的。

第一,pom配置,我們需要引入相關(guān)jar:

<dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-stream</artifactId></dependency><dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mqtt</artifactId></dependency>

第二,配置MQTT服務(wù)器基本信息,在springBoot配置文件application.properties中配置,添加如下:

#MQTT配置信息#MQTT-用戶名spring.mqtt.username=admin#MQTT-密碼spring.mqtt.password=password#MQTT-服務(wù)器連接地址,如果有多個,用逗號隔開,如:tcp://127.0.0.1:61613,tcp://192.168.2.133:61613spring.mqtt.url=tcp://127.0.0.1:61613#MQTT-連接服務(wù)器默認客戶端IDspring.mqtt.client.id=mqttId#MQTT-默認的消息推送主題,實際可在調(diào)用接口時指定spring.mqtt.default.topic=topic

第三,配置MQTT消息推送配置類,

/** * 〈一句話功能簡述〉<br> * 〈MQTT發(fā)送消息配置〉 * * @author AnswerChang * @create 2018/6/4 * @since 1.0.0 */@Configuration@IntegrationComponentScanpublic class MqttSenderConfig { @Value('${spring.mqtt.username}') private String username; @Value('${spring.mqtt.password}') private String password; @Value('${spring.mqtt.url}') private String hostUrl; @Value('${spring.mqtt.client.id}') private String clientId; @Value('${spring.mqtt.default.topic}') private String defaultTopic; @Bean public MqttConnectOptions getMqttConnectOptions(){MqttConnectOptions mqttConnectOptions=new MqttConnectOptions();mqttConnectOptions.setUserName(username);mqttConnectOptions.setPassword(password.toCharArray());mqttConnectOptions.setServerURIs(new String[]{hostUrl});mqttConnectOptions.setKeepAliveInterval(2);return mqttConnectOptions; } @Bean public MqttPahoClientFactory mqttClientFactory() {DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();factory.setConnectionOptions(getMqttConnectOptions());return factory; } @Bean @ServiceActivator(inputChannel = 'mqttOutboundChannel') public MessageHandler mqttOutbound() {MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(clientId, mqttClientFactory());messageHandler.setAsync(true);messageHandler.setDefaultTopic(defaultTopic);return messageHandler; } @Bean public MessageChannel mqttOutboundChannel() {return new DirectChannel(); }}

第四,配置MqttGateway消息推送接口類,在sendToMqtt(String data,@Header(MqttHeaders.TOPIC)String topic)接口中,data為發(fā)送的消息內(nèi)容,topic為主題。指定topic,則我們的接口可以根據(jù)需要,向不同的主題發(fā)送消息,方便靈活應(yīng)用。如果不指定,則使用默認配置的主題。

@MessagingGateway(defaultRequestChannel = 'mqttOutboundChannel')public interface MqttGateway { void sendToMqtt(String data,@Header(MqttHeaders.TOPIC) String topic);}

最后,寫個接口類測試下功能,用Postman調(diào)用sendMqtt.do接口,往hello主題發(fā)送消息,用MQTTLens訂閱hello主題,從下面截圖,可以看出可以正常往MQTT服務(wù)發(fā)送消息了,而且可以訂閱到。

@RestController@RequestMapping('/test')public class TestController { @Autowired private MqttGateway mqttGateway; @RequestMapping('/sendMqtt.do') public String sendMqtt(String sendData){mqttGateway.sendToMqtt(sendData,'hello');return 'OK'; }}

SpringBoot2.0集成MQTT消息推送功能實現(xiàn)

SpringBoot2.0集成MQTT消息推送功能實現(xiàn)

到此這篇關(guān)于SpringBoot2.0集成MQTT消息推送功能實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot MQTT消息推送內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 成人在线一区二区三区 | 亚洲视频在线观看一区 | 久久六视频 | 欧美激情一区二区三区高清视频 | 久草小视频 | 国产日产欧产精品精品推荐小说 | 亚洲人成综合 | 国产一区二区三区视频在线观看 | 一级片网址| 久久精品国产福利 | 国产偷国产偷亚洲高清在线 | 一区二区三区在线 | 网站 | 欧美日韩亚洲高清不卡一区二区三区 | 日韩欧美一区二区三区免费看 | 久久99久久精品视频 | 免费观看性欧美毛片 | 国产精品亚洲精品久久成人 | 国产草草影院 | 精品国产免费观看一区 | 草草日| 色拍拍在精品视频69影院在线 | 欧美日韩一区二区三区视频在线观看 | 欧美精品专区免费观看 | 欧美做爰野外在线视频观看 | 真正免费一级毛片在线播放 | 国产中文字幕免费观看 | 宫女淫春| 欧美一级毛级毛片 | 久久99精品久久久久久国产越南 | 91久久夜色精品国产网站 | 亚洲午夜免费 | 九九精品激情在线视频 | 国产高清一区二区三区视频 | 成人一级黄色毛片 | 欧美成人免费在线观看 | 欧美最黄视频 | 国产成人久久综合热 | 欧美成视频无需播放器 | 日本三级精品 | 日韩国产毛片 | 国产第三区 |