path: ‘/mqtt’
};
@NgModule({
declarations: [HomeComponent],
imports: [CommonModule, FormsModule, SharedModule, HomeRoutingModule, MqttModule.forRoot(MQTT_SERVICE_OPTIONS)]
})
在需要的组件中使用ngx-mqtt订阅和发布消息。
首先引入
import {Subscription} from ‘rxjs’;
import {IMqttMessage, MqttService} from ‘ngx-mqtt’;
构造函数中注入依赖
constructor(private _mqttService: MqttService) {
// …
}
订阅mqtt消息
this.subscription = this._mqttService.observe(‘my/topic’).subscribe((message: IMqttMessage) => {
console.log(message.payload.toString());
});
其中 this._mqttService.observe(“ 这里面是要订阅的主题——topic ”),回调函数 message 为订阅后,发布者发布相关主题数据时收到的数据。
发布消息
this._mqttService.unsafePublish(topicText, messageText, {qos: 1, retain: true});
topicText:是发布的主题(topic)
messageText:是发布的内容(payload)
{qos: 1, retain: true}
retain参数:
当我们使用MQTT客户端发布消息(PUBLISH)时,如果将RETAIN标志位设置为true,那么MQTT服务器会将最近收到的一条RETAIN标志位为true的消息保存在服务器端(内存或文件),例如开启系统,查看设备的开关状态,我们可以获取上一次设备的状态直接设置开关的开关状态,使开关和设备的真实状态对应起来。
qos 参数:
-
QOS0不可靠,因此适合大量数据的传输,因为很大量的数据,完全避免不丢包是很难的,网络环境、现实环境什么的。想要保证的话,大量的数据,一般是要做断点续传。而且小编的经验,像类似 “轮询” 这样不断地得到一些检测数据,这种数据,中间丢几包是基本不会影响业务的。
-
QOS1可靠,一般的场景够用,因为总能接到数据嘛。缺点就是 “可能造成” 1条数据,接了多次。
-
QOS2严格可靠,保证相同的消息只接收一条,(请稍微构思一下内部的实现…虽然不复杂,但要一定的流程来保证的,对吧),在每一次通讯都这样执行的话,势必会造成性能的考验,因此小编对QOS2的意见是 “如非必要,慎用,特别是个人/小团队,没有那么多资金租用特别好的服务器”。
然后根据自己的具体逻辑,就可以实现angular mqtt消息的订阅和转发了!
连接mqtt服务器
配置好 mqtt 服务器后,运行会自动连接设置好的mqtt服务器,直接进行订阅或者发布消息就可以。
export const MQTT_SERVICE_OPTIONS: IMqttServiceOptions = {
hostname: ‘192.168.1.123’, // mqtt 服务器ip
port: 8083, // mqtt 服务器端口
path: ‘/mqtt’
};
但是!BUT!
如果运行过程中需要切换mqtt服务器,因此需要重新配置mqtt服务器,然后重新连接。
首先在界面引进配置mqtt的参数
import {MQTT_SERVICE_OPTIONS} from ‘./home.module’;
然后重新配置一下连接mqtt服务器的参数
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
本文介绍了如何在Angular项目中使用ngx-mqtt库实现MQTT的订阅和发布功能,包括设置QoS级别、连接mqtt服务器以及在组件中管理消息订阅。还讨论了QoS的不同选项和在切换mqtt服务器时的注意事项。
1万+

被折叠的 条评论
为什么被折叠?



