2017-05-10 177 views
0

我的問題是,服務總線中的接收器如何偵聽新消息?它是否會在一段時間之後向服務總線發送任何新消息的查詢請求,或者服務總線將任何新消息推送到連接的接收器?如何從隊列/訂閱向接收者發送消息?

我使用的是.NET客戶端庫,它默認使用SBMP協議。

+0

你使用什麼客戶端和協議(SBMP或AMQP)? –

+0

我正在使用.NET客戶端庫,默認情況下它使用SBMP。 –

回答

1

當你手動接收(或批量接收)時,它並不重要,因爲服務器會給你任何你所要求的(或者它在那個時候如果它低於要求的)。如果您使用帶回調的OnMessage API,無論使用哪種傳輸方式,無論是推送還是拉取,您都會在每封郵件中獲得回調調用。使用SBMP消息由客戶端從代理進行輪詢。通過AMQP,它們被經紀人推送到客戶端。

1

我的答案指的是通過AMQP運行的Azure服務總線SDK(鏈接 - >https://github.com/Azure/azure-service-bus-java)。

MessageReceiver對象用於在需要時從隊列接收消息。

該類有一個接收函數,它將服務器等待時間作爲參數(缺省值爲30秒)。

這意味着如果隊列中沒有消息,它將不會立即返回,而是會等待30秒或任何時間指定新消息。

如果之前有一條新消息,那麼它將在該點返回。

這基本上稱爲長輪詢。

它保存客戶端連續輪詢隊列。

相關問題