最新要闻
- 业界功率最高!一加27W冰点散热背夹发布 219元
- 蔚来:自家充电桩仅24%时间给蔚来充电 比亚迪、特斯拉用爽了
- 世界微资讯!ChatGPT幕后创始人拿微软100亿 是在下一步大棋
- 【热闻】你出国耍吗?多条国际航班机票降至千元 泰国往返国内不到2000元
- 焦点观察:日产扛把子!新款轩逸/轩逸e-POWER官图发布:能救市吗?
- 全球动态:一加Ace 2全球首发1.5K灵犀触控屏:120Hz刷新率、1450nit高亮度
- 每日消息!知名玩家爆料魔兽国服已签新代理:暴雪相中上海一公司
- 全球热点!土耳其再发生5.2级地震:中国卫星传回土耳其地震震中图像
- 全麦+黑麦:舌里0脂肪全麦面包14.9元2斤40片大促
- 国产版ChatGPT!百度版已成功注册ERNIE商标:最快3月开放
- 车顶维权女车主:重启战斗模式 希望今年能明确特斯拉案件结果
- 小米首款二合一笔记本!小米笔记本12.4图赏
- 每日速看!陪伴十年被撞报废!男子躲过一劫磕头跪别爱车 网友:它值得
- 环球视点!一加Ace 2普及16GB超大内存:44个应用保活
- 世界观点:首批入手三星Galaxy S23用户开机后大跌眼镜:系统吃掉60GB存储空间
- 上海网红“安福路小公主”接代言引热议:网友感叹辣眼睛的大妈无敌了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
整合MQTT
1、步骤(1)dependence
(资料图)
用户名(这里为空)
mqtt.username=iot
密码(这里为空)
mqtt.password=iot
推送信息的连接地址,如果有多个,用逗号隔开,如:tcp://127.0.0.1:1883,tcp://192.168.60.133:1883
mqtt.url=tcp://ccc.lmuiot.cn:1883
客户端ID(这里使用随机数)
mqtt.clientId=$
默认的推送主题,实际可在调用接口时指定
mqtt.sender.defaultTopic=test
默认的接收主题,实际可在调用接口时指定
mqtt.receiver.defaultTopic=testaa/#,testbb(3)Configuration@Configurationpublic class MqttConfig {/*** 发布的bean名称*/public static final String CHANNEL_NAME_OUT = "mqttOutboundChannel";public static final String CHANNEL_NAME_IN = "mqttInboundChannel";// 客户端与服务器之间的连接意外中断,服务器将发布客户端的“遗嘱”消息private static final byte[] WILL_DATA;static {WILL_DATA = "offline".getBytes();}
@Value("${mqtt.username}")private String username;@Value("${mqtt.password}")private String password;@Value("${mqtt.url}")private String url;@Value("${mqtt.clientId}")private String clientId;@Value("${mqtt.sender.defaultTopic}")private String defaultTopic;@Value("${mqtt.receiver.defaultTopic}")private String defaultreceiverTopic;/** * MQTT连接器选项 */@Beanpublic MqttConnectOptions getSenderMqttConnectOptions(){ MqttConnectOptions options=new MqttConnectOptions(); // 设置连接的用户名 System.out.println(username); if(!username.trim().equals("")){ options.setUserName(username); } // 设置连接的密码 options.setPassword(password.toCharArray()); // 设置连接的地址 options.setServerURIs(new String[]{url}); // 设置超时时间 单位为秒 options.setConnectionTimeout(100); // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送心跳判断客户端是否在线 // 但这个方法并没有重连的机制 options.setKeepAliveInterval(30); // 设置“遗嘱”消息的话题,若客户端与服务器之间的连接意外中断,服务器将发布客户端的“遗嘱”消息。 options.setWill("willTopic", WILL_DATA, 2, false); return options;}/** * MQTT客户端 */@Beanpublic MqttPahoClientFactory senderMqttClientFactory() { DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); factory.setConnectionOptions(getSenderMqttConnectOptions()); return factory;}/** * MQTT信息通道(生产者) */@Bean(name = CHANNEL_NAME_OUT)public MessageChannel mqttOutboundChannel() { return new DirectChannel();}/** * MQTT消息处理器(生产者) */@Bean@ServiceActivator(inputChannel = CHANNEL_NAME_OUT)public MessageHandler mqttOutbound() { MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(clientId, senderMqttClientFactory()); messageHandler.setAsync(true); messageHandler.setDefaultTopic(defaultTopic); return messageHandler;}/** * MQTT信息通道(消费者) */@Bean(name = CHANNEL_NAME_IN)public MessageChannel mqttInboundChannel() { return new DirectChannel();}/** * MQTT消息订阅绑定(消费者) */@Beanpublic MessageProducer inbound() { // 可以同时消费(订阅)多个Topic MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter( clientId, senderMqttClientFactory(), StringUtils.split(defaultreceiverTopic, ",")); adapter.setCompletionTimeout(5000); adapter.setConverter(new DefaultPahoMessageConverter()); adapter.setQos(1); // 设置订阅通道 adapter.setOutputChannel(mqttInboundChannel()); return adapter;}/** * MQTT消息处理器(消费者) */@Bean@ServiceActivator(inputChannel = CHANNEL_NAME_IN)public MessageHandler handler() { return new MqttCaseServiceImpl();}
}(4)MqttCaseServiceImplpublic class MqttCaseServiceImpl implements MessageHandler {@AutowiredGson gson;@AutowiredSensor sensor;
@Overridepublic void handleMessage(Message> arg0) throws MessagingException {// TODO Auto-generated method stubSystem.out.println("ok 00"); String topic = (String) arg0.getHeaders().get("mqtt_receivedTopic"); String payload = (String) arg0.getPayload(); System.out.println("headers:"+topic+" "+payload); if(topic.equals("testaa/sensor")) { System.out.println("testaa/sensor"+" "+payload); try { sensor=gson.fromJson(payload, Sensor.class); System.out.println("sensor:"+sensor.toString());} catch (JsonSyntaxException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}
}(5)IMqttSender/**
MQTT生产者消息发送接口/@Component@MessagingGateway(defaultRequestChannel = MqttConfig.CHANNEL_NAME_OUT)public interface IMqttSender {/*
- 发送信息到MQTT服务器
- @param data 发送的文本/void sendToMqtt(String data);/*
- 发送信息到MQTT服务器
- @param topic 主题
- @param payload 消息主体/void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic,String payload);/*
- 发送信息到MQTT服务器
- @param topic 主题
- @param qos 对消息处理的几种机制。
- 0 表示的是订阅者没收到消息不会再次发送,消息会丢失。
- 1 表示的是会尝试重试,一直到接收到消息,但这种情况可能导致订阅者收到多次重复消息。
- 2 多了一次去重的动作,确保订阅者收到的消息有一次。
- @param payload 消息主体/void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic,@Header(MqttHeaders.QOS) int qos,String payload);}(6)发送Controller@RestControllerpublic class MQTTController {/*
- 注入发送MQTT的Bean*/@Autowiredprivate IMqttSender iMqttSender;
// 发送自定义消息内容(使用默认主题)@RequestMapping("/test1/{data}")public void test1(@PathVariable("data") String data) {System.out.println(data);iMqttSender.sendToMqtt(data);}
// 发送自定义消息内容,且指定主题@RequestMapping("/test2/{topic}/{data}")public void test2(@PathVariable("topic") String topic, @PathVariable("data") String data) {iMqttSender.sendToMqtt(topic, data);}}2、测试(1)发送消息
(2)接收消息
-
整合MQTT
1、步骤(1)dependencecom google code gsongsonorg springframework integrationspring-integration-stre
来源: -
当前简讯:京东一面:MySQL 中的 distinct 和 group by 哪个效率更高?问倒一大遍。。
先说大致的结论(完整结论在文末):在语义相同,有索引的情况下:groupby和distinct都能使用索引,效率...
来源: 整合MQTT
当前简讯:京东一面:MySQL 中的 distinct 和 group by 哪个效率更高?问倒一大遍。。
业界功率最高!一加27W冰点散热背夹发布 219元
蔚来:自家充电桩仅24%时间给蔚来充电 比亚迪、特斯拉用爽了
世界微资讯!ChatGPT幕后创始人拿微软100亿 是在下一步大棋
【热闻】你出国耍吗?多条国际航班机票降至千元 泰国往返国内不到2000元
焦点观察:日产扛把子!新款轩逸/轩逸e-POWER官图发布:能救市吗?
3.SpringSecurity+登录功能+jwt校验过滤器+redis配置
当前消息!K8S的基础概念
今亮点!elementui中el-table表头动态筛选条件未及时更新问题解决
世界新消息丨C#高级编程2
RocketMQ Streams拓扑构建与数据处理过程
全球动态:一加Ace 2全球首发1.5K灵犀触控屏:120Hz刷新率、1450nit高亮度
每日消息!知名玩家爆料魔兽国服已签新代理:暴雪相中上海一公司
全球热点!土耳其再发生5.2级地震:中国卫星传回土耳其地震震中图像
全麦+黑麦:舌里0脂肪全麦面包14.9元2斤40片大促
国产版ChatGPT!百度版已成功注册ERNIE商标:最快3月开放
强大的word插件:不坑盒子下载安装使用图文讲解
ChatGPT横空出世,虽然会改BUG,但程序员也不用慌
天天简讯:强大的word插件,让工作更高效:不坑盒子 2023版
pandas 用户数据分析2
车顶维权女车主:重启战斗模式 希望今年能明确特斯拉案件结果
小米首款二合一笔记本!小米笔记本12.4图赏
每日速看!陪伴十年被撞报废!男子躲过一劫磕头跪别爱车 网友:它值得
环球视点!一加Ace 2普及16GB超大内存:44个应用保活
世界观点:首批入手三星Galaxy S23用户开机后大跌眼镜:系统吃掉60GB存储空间
【天天速看料】【算法训练营day41】LeetCode343. 整数拆分 LeetCode96. 不同的二叉搜索树
今日观点!亚马逊商城入门教程_编程入门自学教程_菜鸟教程-免费教程分享
天天快资讯:计算机视觉——SSD和YOLO简介
焦点热议:CTF之WEB学习路线规划
当前焦点!第一个编译器
上海网红“安福路小公主”接代言引热议:网友感叹辣眼睛的大妈无敌了
全球播报:13代CPU+40系GPU 笔记本和台式机区别有多大?
微头条丨100%纯棉 班尼路短袖99元4件包邮:13色可选
今日热文:ChatGPT概念全球爆火!我国人工智能相关企业超百万家
没法出二手“回血”了!索尼称PS VR2初期将仅推出数字版游戏
视讯!火山引擎ByteHouse助力中国地震台网中心,快速构建一站式实时数仓
实战分享 | 金融数据采集报送平台实践
观天下!我是如何用CAP和BASE两个基础理论卷死其他组员的?
环球信息:【踩坑记录】@Transactional注解回滚不生效问题
世界微资讯!开心档-软件开发入门之MongoDB 覆盖索引查询
世界动态:89%美国大学生用写作业!揭秘爆红ChatGPT之父:应对核末日狂囤黄金、中学就出柜
当前快报:2023年首次更新!微信Mac版3.7.0发布:终于支持图片文字提取
世界观察:Github、Gitee优秀的开源项目
【ChatGPT 注册】
【天天聚看点】ChatGPT让苹果急了!消息称苹果将于下周召开内部AI峰会
环球快资讯丨299元!小米对讲机2S发布:市区5公里通话 100个对讲频道
热议:4个小号给大号浇水 缴电费再退骗蚂蚁森林能量被封号!法院判了
人工智能立大功!AI筛查阿尔茨海默病准确率达75%
每日视点!19999元!尼康发布尼克尔Z 85mm f/1.2 S镜头:模特发丝根根可数
观天下!从这些爆款小游戏中,你看到了什么?
Docker容器使用 (入门到精通)
HGAME_2023_WEB_WP_WEEK3
2799限量抢!小米Civi 2潮流版预售 网友:我一男生都表示太好看
世界报道:豆瓣仅5.7分 漫威超英大片《黑豹2》国内首映 开场票房就被《流浪地球2》超越
每日速递:男子花两千元套圈 套中两台宏光汽车:本人回应只要一辆 做人留一线
国产纯电两门跑车!哪吒E实车亮相:动力暴躁
焦点!百度类ChatGPT产品“文心一言”公开:股价应声上涨13%
诺基亚800c手机上市价格是多少?诺基亚800c手机参数
breeno指令是干什么用的?breeno指令在哪里?
戴尔笔记本电脑换电池大概多少钱?戴尔笔记本电脑开机黑屏没反应怎么办?
格力空调型号在哪里查看?格力空调型号一览表匹数
美的冰箱质量怎么样?美的冰箱怎么调温度?
天天视讯!Redis的十六种应用场景
全球短讯!一款备受欢迎的用户脚本管理器插件TampermonKey-油猴脚本管理器安装与使用
越狱最后各人物的结局是什么?电视剧越狱演员表
曾志伟的身高是什么?曾志伟个人资料
12月是什么星座?描写12月你好的优美说说
取关是什么意思?取关抖音好友对方知道吗?
期中考试家长意见怎么写?期中考试后的感想作文模板
热点评!19岁中国小伙确诊老年痴呆 全球纪录又被刷新了
全球看点:土耳其大地震 多家中国上市公司称影响有限
ChatGPT教你写AI包教包会!7段对话写出识别程序 准确度最高达99.7%
每日资讯:小米Civi 2潮流限定版来了:后盖上全是粉色Hello Kitty 超萌
世界看热讯:国产ChatGPT何时能出?百度站出来了:最快3月 评分全球第一
[西湖论剑2022]Misc-机你太美
焦点资讯:抖音视频无水印下载器,抖音视频下载器,下载未开放下载权限的视频,支持批量下载,同一作者作品自动批量下载,合集下载,话题挑战视频合集下载等
世界快消息!【2023微博签到爬虫】用python爬上千条m端微博签到数据
带了一个 3 年的开发,不会循环删除 List 中的元素,心态崩了。。
环球通讯!DataX插件二次开发指南
7斤纯铜就能压制酷睿i9 为啥还要散热风扇?原因一个字:贵
新能源起大早赶晚集 吉利失去的四年
全球新消息丨魔兽等游戏国服已停服两周 暴雪高管:寻求替代方式服务中国玩家
全球热点评!法拉利2022年销量破纪录 员工年终奖人均10万
世界新动态:读Java实战(第二版)笔记03_引入和使用流
焦点快看:必知必会的设计原则——开放封闭原则
焦点信息:官方加紧备货!红魔8 Pro系列开售一个多月供不应求:网友反映“秒没”
全球要闻:2.5K触屏骁龙本!小米Book 12.4二合一首销:到手2899元
环球微动态丨2023年来最强雨雪上线:北方下雪、南方暴雨 影响超20省份
单踏板不爽、刹车失灵无妨!特斯拉83%车主为新用户 客户流失低忠诚度最高
【环球速看料】聊天机器人ChatGPT要抢搜索引擎生意 谷歌出手:竞品Bard来了
【天天新要闻】安卓之光来了!曝小米13 Ultra 4月登场:支持120倍变焦
天天时讯:售价超过2万元 苹果MR头显即将推出:搭载全新OS 未来将取代iPhone
【天天新视野】我国多地取消中考男女生长跑 800米对健康不利:专家喊话体育锻炼不能放松
关于pacemaker-Cluster-节点的维护模式的功能介绍
SpringBoot怎么自定义一个Starter
当前快报:做出《新闻联播》片头的齐东旭教授走了:中国CAD与计算机图形学痛失巨匠
环球观焦点:游客放孔明灯被拽下吹灭 景区回应:明文规定禁放禁售
【天天新视野】《分布式技术原理与算法解析》学习笔记Day03
Spring IOC官方文档学习笔记(九)之基于注解的容器配置