首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在angular项目中使用ngx-mqtt而不给出旧数据(行为类似于热观察值)

在angular项目中使用ngx-mqtt而不给出旧数据(行为类似于热观察值)
EN

Stack Overflow用户
提问于 2020-02-26 15:39:52
回答 2查看 157关注 0票数 0

我在angular项目中使用过ngx-mqtt。还有另一个项目创建数据,并发送数据到特定的topic.When我从角度应用程序订阅这个主题,我总是从订阅时获得数据,无论哪个数据后来发布到主题。我没有得到旧数据,数据源在我订阅主题之前发布到主题。

例如)数据源创建了1到10个数据,如1,2,3,4,5,6,7,8,9,10新订阅者在发出5个数据点后添加到topic(如果我订阅,则使用angular应用程序)。我从6(6,7,8,9, 10 )中获取数据,但我需要从1到10的数据

当我订阅任何新的主题时,如何从主题中获取所有数据

这是mqtt的默认行为方式吗?

在angular,我听说过热和冷的可观测性。有没有可能让mqtt表现为冷可观察?(只要订阅了新订阅者,就发送所有数据)

EN

回答 2

Stack Overflow用户

发布于 2020-02-26 16:03:20

使用shareReplay()运算符,对于这种情况,所有延迟订阅都将获得发出的所有值。https://www.learnrxjs.io/learn-rxjs/operators/multicasting/sharereplay

票数 0
EN

Stack Overflow用户

发布于 2020-02-26 23:25:01

MQTT将只为具有持久会话的客户端排队数据(有关持久会话的详细信息,请参阅HiveMQ博客post )。

这意味着客户端需要已经连接到代理,并在QOS1或QOS2订阅了相关主题。

当它重新连接时,它需要使用相同的客户端id,并确保clean会话标志设置为false。

MQTT是发布/订阅协议,而不是通用的消息队列系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60408981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档