首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

订阅subject和订阅asObservable有什么区别?

订阅subject和订阅asObservable的区别在于返回值的类型和订阅的权限。

  1. 订阅subject:
    • 返回类型:Subject是一个特殊的Observable,同时也是一个Observer。因此,当我们订阅一个Subject时,我们可以得到一个Subscription对象,用于取消订阅。
    • 订阅权限:由于Subject是一个Observer,我们可以通过调用它的next()方法来手动推送新的值给订阅者。
  • 订阅asObservable:
    • 返回类型:asObservable方法将Subject转换为一个普通的Observable。因此,当我们订阅一个asObservable时,我们只能得到一个Observable对象,无法得到Subscription对象。
    • 订阅权限:由于返回的是一个Observable,我们无法通过调用next()方法来手动推送新的值给订阅者,只能被动地接收Subject推送的新值。

总结:

  • 使用Subject进行订阅可以获得Subscription对象,可以主动推送新值给订阅者。
  • 使用asObservable进行订阅只能获得Observable对象,无法主动推送新值给订阅者,只能被动接收Subject推送的新值。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云原生产品:https://cloud.tencent.com/product/tke
  • 腾讯云音视频处理产品:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能产品:https://cloud.tencent.com/product/ai
  • 腾讯云物联网产品:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发产品:https://cloud.tencent.com/product/mab
  • 腾讯云存储产品:https://cloud.tencent.com/product/cos
  • 腾讯云区块链产品:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙产品:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Redis 发布订阅

# Redis 发布订阅 什么是发布订阅 简介 指令与描述 指令测试 原理 # 什么是发布订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者...# 简介 订阅/发布消息图: 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 client1 之间的关系: 当新消息通过 PUBLISH..."channel1" 3) "hello" # 原理 Redis 是使用 C 实现的,通过分析 Redis 源码里的 pubsub.c 文件,了解发布订阅机制的底层实现,来加深对 Redis 的理解...Redis 通过 PUBLISH 、SUBSCRIBE PSUBSCRIBE 等命令实现发布订阅功能。...注意:发布的消息没有持久化,如果在订阅的客户端收不到 hello,只能收到订阅后发布的消息。

46930
  • Redis的发布订阅

    什么是发布订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 Redis 客户端可以订阅任意数量的频道2....Redis的发布订阅1、客户端可以订阅频道如下图 [在这里插入图片描述] 2、当给这个频道发布消息后,消息就会发送给订阅的客户端 [在这里插入图片描述] 3....发布订阅命令行实现 1、打开一个客户端订阅channel1 SUBSCRIBE channel1 [在这里插入图片描述] 2、打开另一个客户端,给channel1发布消息hello publish channel1...hello [在这里插入图片描述] 返回的1是订阅者数量 3、打开第一个客户端可以看到发送的消息 [在这里插入图片描述] 注:发布的消息没有持久化,如果在订阅的客户端收不到hello,只能收到订阅后发布的消息

    48430

    《redis in action》发布订阅

    那么如何诸如QQ这种发布订阅的问题如何用redis去解决。这里咋大概的想一下这个问题。 首先第一步是如何实现一个端到端的发布订阅,也就是说像我们的消息队列这种的发布订阅。...第二种发布订阅就是多个客户端都要去接受消息了,这种模式就类似QQ中的群聊。考虑到我们的消息不能重复存储,原因是我们的用户数量很大,那么消息只能唯一存储,但是用户与消息的关系就只能通过映射去维护。...但是消息发送到群中去,每个人读到的消息肯定不是实时的,可能A已经读完了所有消息,B还有几条没读。这时候AB显示的未读消息数应该是不一样的。...当然这块要是考虑未读消息的话,就是通过websocket去获取未读消息当前消息的位置差来做。 当群聊成员退出群聊的时候,那就需要删除消息成员未读消息的映射关系。...当新成员加入的时候,那就需要新增消息与成员未读消息的映射关系。

    21930

    Android技能树 — Rxjava取消订阅小结(2):RxLifeCycle

    Subject很多种类:子类PublishSubject、BehaviorSubject、ReplaySubject、AsyncSubject、SerializedSubject。...1.2 Hot Observable Cold Observable 正好上面讲到了Subject,顺带提一下冷热Observable。...所谓的冷热和我们单例模式中的饿汉式饱汉式一点点像,冷Observable需要有订阅者的时候才开始发射数据(有点像饱汉式),热Observable并不是一定需要订阅者才开始发射数据(有点像饿汉式)。...他们订阅者的时候才会发射数据,并且他们的共同点是当你多个Subscriber的时候,他们的事件是独立的。...,会报错,因为这时候通过asObservable获取到的对象已经不是Subject对象了。

    2.1K30

    详谈:Redis事务消息订阅

    .]) : 监视一个(或多个) key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断; UNWATCH : 取消WATCH命令对所有key的监控; 2、正常执行放弃事务 正常执行...; 放弃事务; 3、全体连坐冤头债主 下面的演示说明: Redis是部分支持事务的。...WATCH监控案例: (余额消费),例如余额为100,消费为0,余额为80,消费为20..... ①先看一波正常执行的: ②第二波,另一个客户端修改了我们WATCH的key。...概念: 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息; 左边窗口开始订阅c1、c2、c3三个频道。...总结: 先订阅后发布后才能收到消息, 可以一次性订阅多个,SUBSCRIBE c1 c2 c3。 消息发布,PUBLISH c2 hello-redis。

    70020

    Redis教程09(发布订阅)

    之前几篇文章给大家介绍了redis的五种数据类型及相关的命令,本文介绍redis中比较简单的发布订阅 Redis发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式: 发送者(...pub)发送消息 订阅者(sub)接收消息 Redis 客户端可以订阅任意数量的频道 订阅消息 客户端订阅消息的命令如下 127.0.0.1:6379> subscribe c1 c2 c3 Reading...) 3 1) "message" 2) "c1" 3) "hello redis" #接收到c1发送的消息 1) "message" 2) "c2" 3) "hehe" #接收到c2发送的消息 模式订阅消息...客户端在订阅消息的时候还可以通过模式匹配订阅的方式订阅,如下 127.0.0.1:6379> psubscribe c* Reading messages......(press Ctrl-C to quit) 1) "subscribe" 2) "c*" #订阅所有发送则是c开头的消息 3) (integer) 1 发送消息,没有区别 127.0.0.1:6379

    33220

    RxSwift介绍(三)——更加灵活的Subject

    Subject订阅者也是 Observable,首先可以动态地接受新值,其次当 subject 值更新时,会通过 event 把新值发送给所有的订阅者。...在 RxSwift 框架中,提供了四种类型的 subject,首先要了解的一点就是提供的四种 subject 创建方式最主要的区别:当一个新的订阅订阅subject对象时,能否收到 subject...PublishSubject 最普通的 subject ,不需要初始值就可以创建,而且从订阅者开始订阅的时间点起,可以收到 subject 发出的新 event,而不会收到在订阅前已发出的 event...可以使用这个方法返回这个 Variable 的 Observable 类型,拿到这个 Observable 类型就能订阅它了) 介绍了以上四种 subject ,接下来贴代码并附上运行打印截图,兴趣的可以..." subject.asObservable().subscribe(onNext: { (event) in print(event) }, onError

    1.6K30

    QQ订阅号来了,什么值得关注的?

    从周边朋友的反馈来看,大家对QQ订阅号平台还是很重视的,很简单,手Q活跃用户大概是微信的两倍,它微信差异化发展,一起构成了腾讯在移动端最核心的两大入口。...微信已经三种了:订阅号、服务号企业号,订阅号又分为媒体号、个人号、企业注册订阅号(与企业号很不同),不同的账号有着不同的账号功能、群发权限、接口权限,已经形成一套非常复杂的内容体系。...在功能属性上,手Q沿袭了QQ的一些特征,比如更娱乐化,很多娱乐功能;在兴趣社交上,它比微信做得更多,兴趣部落、QQ空间、开放式的QQ群(微信群是封闭的,不支持搜索加入)这些关键产品;在生活服务上手Q...如果说腾讯打算狙击或者防御陌陌、贴吧、豆瓣这些后生社交应用,那么手Q很大程度承担了这个角色。 尽管有上述差异,手Q微信最终目的还是一样,即都是腾讯的入口级业务,是腾讯的两大连接器。...看看微信公众平台走过来的路,就知道公众平台非常复杂,非常多不同的玩儿法,绝不是简单地“copy微信公众平台”就可以了。 对于所有已入驻微信公众平台个人、企业机构而言,大都会选择入驻手Q。

    1.9K90

    招式修炼-redis事务发布订阅

    Redis 的事务保证了 ACID 中的一致性(C)隔离性(I),但并不保证原子性(A)持久性(D)。 02redis发布订阅 Redis 消息队列的不足之处,那就是它不支持消息的多播机制。...,还有取消订阅指令的反馈 unsubscribe punsubscribe。...当新消息发送到频道时,程序遍历频道(键)所对应的(值)所有客户端,然后将消息发送到所有订阅频道的客户端上。...程序通过遍历链表来查找某个频道是否某个模式匹配。 当新消息发送到频道时,除了订阅频道的客户端会收到消息之外,所有订阅了匹配频道的模式的客户端,也同样会收到消息。...退订频道退订模式分别是订阅频道订阅模式的反操作。

    49520

    Zookeeper搭载kafka消息发布订阅

    分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、 集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁分布式队列等功能。...跟随角色 Observer 观察角色 三、zookeeper的特点优势 简单 Zookeeper的核心是一个精简的文件系统,它支持一些简单的操作和一些抽象操作,例如,排序通知...例如,分布式队列、分布式锁一组同级别节点中的“领导者选举”。 高可靠 Zookeeper支持集群模式,可以很容易的解决单点故障问题。...四、zookeeper在分布式系统中的功能 zookeeper在分布式微服务中,可以用来做: 分布式协调服务/通知 数据发布与订阅(配置中心) 分布式锁 命名服务 Master选举 在SpringCLoud...kafka与zookeeper的作用主要定义如下: 1、kafka使用zookeeper来实现动态的集群扩展,不需要更改客户端(producerconsumer)的配置。

    66596

    Redis中的发布订阅事务

    前面我们说了redis中的基本数据类型,本文我们来看看redis中的发布订阅事务,因为这两个都比较简单,因此我放在一篇文章中来讲。...发布订阅 redis的发布订阅系统有点类似于我们生活中的电台,电台可以在某一个频率上发送广播,而我们可以接收任何一个频率的广播,Android中的broadcast也这类似。...订阅消息的方式如下: 127.0.0.1:6379> SUBSCRIBE c1 c2 c3 Reading messages......事务 既然redis是一种NoSQL数据库,那它当然也有事务的功能,不过这里的事务和我们关系型数据库中的事务一点点差异。...OK,发布订阅事务我们就介绍这么多,更多命令小伙伴们可以参考官方文档http://www.redis.cn/commands.html。小伙伴在看官方文档时,什么问题欢迎留言讨论。

    55200
    领券