我正在使用Lamina实现一个基本的发布订阅模式。
当客户端订阅一个主题时,我会为它创建一个新的channel (如果它还不存在),然后将其siphon到客户端的channel。然而,我不知道如何逆转这一点,让客户取消订阅。我搜索了文档,用谷歌搜索了一下,但什么也没找到。
如何撤消siphon所做的操作?
发布于 2012-10-04 14:45:13
通常,你会做一个可以关闭的桥通道,所以链接是:
主题通道->桥通道->客户端通道
在0.5.0中,这很容易,因为siphon是可变的:
(defn cancellable-siphon [src dst]
(let [bridge (channel)]
(siphon src bridge dst)
#(close bridge)))发布于 2012-10-04 08:34:05
您可以在虹吸管上方fork上游通道,然后将下游通道接地,或者如果您的图形允许,您可以只关闭不再需要从上游通道虹吸的通道。
ps:稍后我会试着添加一个例子……
https://stackoverflow.com/questions/12717046
复制相似问题