参考https://github.com/Azure/azure-service-bus/tree/master/samples/DotNet/GettingStarted/Microsoft.Azure.ServiceBus/BasicSendReceiveUsingTopicSubscriptionClient,我了解Azure Service Bus主题一般如何工作,我的问题更多是关于其实际工作方式。
注册MesageHandler(subscriptionClient.RegisterMessageHandler)后,它开始接收消息,如我在
中所见Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");
但是,我的问题是客户端实际上是使用拉模式接收消息还是来自服务总线的推?客户端是否进行了连续轮询以接收消息-内部如何工作?
答案 0 :(得分:1)
客户端正在执行长轮询。即它会询问消息并等待。如果在一分钟的超时时间后没有返回任何内容,它将再次轮询。如果超时之前有消息可用,该消息将被提供给消息处理程序,并且轮询将再次开始。 Azure Service Bus不会将消息推送到客户端。