4

Laminaを使用して基本的なpubsubパターンを実装しています。

クライアントがトピックをサブスクライブするとき、私はそのトピックの新しいトピックを作成channelし(まだ存在しない場合)、siphonそれをクライアントのに作成しますchannel。ただし、これを元に戻してクライアントの登録を解除する方法がわかりません。ドキュメントを検索してグーグルで検索していますが、何も見つかりません。

何を元に戻すにはどうすればよいsiphonですか?

4

2 に答える 2

3

サイフォンの上のアップストリームチャネルを使用forkしてからダウンストリームチャネルを接地するか、グラフで許可されている場合は、アップストリームチャネルからサイフォンを使用する必要がなくなったチャネルを閉じることができます。

ps:後で例を追加しようとします...

于 2012-10-04T00:34:05.073 に答える
1

通常、閉じることができるブリッジチャネルを作成するため、リンクは次のようになります。

トピックチャネル->ブリッジチャネル->クライアントチャネル

0.5.0では、サイフォンが可変個引数であるため、これは簡単です。

(defn cancellable-siphon [src dst]
   (let [bridge (channel)]
     (siphon src bridge dst)
     #(close bridge)))
于 2012-10-04T06:45:12.623 に答える