2016-11-23 4 views
0

MassTransitとAzure Service Busをトランスポートとして使用するアプリケーションを作成しました。イベントやコマンドのパブリッシュ、送信、取得 - これはすべてうまく動作します。しかし今、私はサブスクライバを作成して、サブスクライバが接続した後にパブリッシャが送信するメッセージを取得したい。どうやってするか?私は接続する前に出版社によって送られたすべてのメッセージを取得したくありません。サブスクライバが接続した後にパブリッシャが送信するメッセージのみを取得します(マストトランジット)

答えて

1

あなたが求めていることはできません。

定義によると、発行者は購読者にのみ送信します。イベントが公開された時点で加入者が接続されていない場合、その加入者はそれを受信しません。イベントが公開された時点で接続されているサブスクライバのみがイベントを受信します。

将来、MassTransitは、あなたが望むものをサポートするKafkaとEvent Hubのサポートを追加しますが、それらのトランスポートのセマンティクスはかなり異なります。

+0

気象に応じて、イベントハブの早期サポートは来週までに準備ができているかもしれません... –

+0

私はこれを今試しました。手順: 1.購読者を閉じます 2.出版社からメッセージを送信 3.開封者 結果:購読者にメッセージがあります。 新しいサブスクライバ(新しいキューを持つ)を作成すると言うように動作します。 –

+0

@АлександрГребенюкそれは正しいです。加入者が一度接続されると、メッセージは切断されたときにキューに蓄積され、再接続時に利用可能になります。 –