我想看看对方是否放弃并关闭了StreamChannel的接收器,却还没有真正阅读过消息。
(我将把流传递给其他人,所以我不能听(),因为你只允许每个流听一次。)
[为朋友发帖,向他们提问是否有问题]
答案 0 :(得分:6)
简而言之,没有。
没有"放弃"的概念。如果您将事件放入非广播流中,他们会留在那里直到有人收听流(这就是为什么您不应该将数据放在那里直到有人听,你只是在浪费内存) 。 这包括完成事件,如果没有先阅读所有前面的事件,您将无法进入完成事件。这是流的核心抽象 - 按顺序访问的事件源,在实际完成之前不会完成。
我认为您正在寻找的是一个"侧面频道"这可以传递关于流的信息,而无需通过通过流(即带外)。
这样的东西肯定可以构建 - 大约有几百种不同的方式,取决于你想要的东西,但它不是Stream
默认支持的东西,也不是StreamChannel
,如果我读得正确(我自己从未使用StreamChannel
)。