Laminaを使用して基本的なpubsubパターンを実装しています。
クライアントがトピックをサブスクライブするとき、私はそのトピックの新しいトピックを作成channel
し(まだ存在しない場合)、siphon
それをクライアントのに作成しますchannel
。ただし、これを元に戻してクライアントの登録を解除する方法がわかりません。ドキュメントを検索してグーグルで検索していますが、何も見つかりません。
何を元に戻すにはどうすればよいsiphon
ですか?
Laminaを使用して基本的なpubsubパターンを実装しています。
クライアントがトピックをサブスクライブするとき、私はそのトピックの新しいトピックを作成channel
し(まだ存在しない場合)、siphon
それをクライアントのに作成しますchannel
。ただし、これを元に戻してクライアントの登録を解除する方法がわかりません。ドキュメントを検索してグーグルで検索していますが、何も見つかりません。
何を元に戻すにはどうすればよいsiphon
ですか?
サイフォンの上のアップストリームチャネルを使用fork
してからダウンストリームチャネルを接地するか、グラフで許可されている場合は、アップストリームチャネルからサイフォンを使用する必要がなくなったチャネルを閉じることができます。
ps:後で例を追加しようとします...
通常、閉じることができるブリッジチャネルを作成するため、リンクは次のようになります。
トピックチャネル->ブリッジチャネル->クライアントチャネル
0.5.0では、サイフォンが可変個引数であるため、これは簡単です。
(defn cancellable-siphon [src dst]
(let [bridge (channel)]
(siphon src bridge dst)
#(close bridge)))