当前位置: 首页 > 知识库问答 >
问题:

Xamarin形式的Azure服务总线

谢高峯
2023-03-14

我正在尝试使用Xamarin表单订阅Azure服务总线队列。(说实话,我根本不确定是否有可能做到。)

我可以使用一个简单的控制台应用程序接收来自队列的消息,没有任何问题。但是,当我将相同的代码移动到Xamarin时,它在两种不同的场景中失败。

    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        static IQueueClient queueClient;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());

            var serviceBusConnectionString = "myConnectionString";
            var queueName = "myqueueName";

            var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandler);
            messageHandlerOptions.AutoComplete = false;
            messageHandlerOptions.MaxConcurrentCalls = 1;

            queueClient = new QueueClient(serviceBusConnectionString, queueName);
            queueClient.RegisterMessageHandler(ProcessMessageAsync, messageHandlerOptions);
        }

        private static async Task ProcessMessageAsync(Message message, CancellationToken token)
        {
            var result = Encoding.UTF8.GetString(message.Body);
            await queueClient.CompleteAsync(message.SystemProperties.LockToken);
        }
}
  1. 使用Xamarin是否可以正确订阅Azure服务总线队列?
  2. 我是不是漏了什么?
  3. 我是否有任何其他选择可以将JSON对象从服务总线发送到电话?

共有1个答案

赵华彩
2023-03-14

进一步说,我发现在Xamarin应用程序中实现类似的订阅模式时,Signal R工作得更好,并且非常容易和轻量级地实现。这是主观的,但我确实发现连接的协商方法比直接连接到Azure服务总线endpoint更简洁

 类似资料:
  • 我试图使用请求回复模式,如微软文档(https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions#request-response-pattern)中所述 “多个应用程序可以将其请求发送到单个请求队列,并将特定的头参数设置为唯一标识发送方应用程序。接收方应用程序可以处理队列中的请求,并在启用会话的队列上发

  • 我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service

  • 我正在寻找一种解决方案,用于在几个本地数据库之间进行实时数据集成。没有太多的数据转换。我正在评估各种可用的ESB。我认为使用Azure服务总线进行数据集成可以快速开发解决方案。建议使用Azure service bus集成所有内部数据库吗?

  • 我正在尝试通过APIM向服务总线队列发送消息。我已经阅读了几篇类似下面的文章,但运气不佳https://connectedcircuits.blog/2018/09/25/exposing-azure-service-bus-through-apim-generating-a-sas-token-and-setting-the-session-id/ https://www.serverlessn

  • 我尝试将Azure服务总线与ApacheQPID和Spring与事务集成。 但Azure服务总线AMQP实现似乎不支持事务。这是真的吗?我没有找到相关信息。 这是我的JMS配置 这是我的spring集成片段: 它与session transact=“false”配合使用,但与session transact=“true”配合使用时会产生错误: QPID跟踪

  • 我使用此url中的示例http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/.我有两个问题: 1、ACS或SAS 连接URL, 用户名和密码来自ACS身份验证,但Azure服务总线已将其身份验证从ACS更改为SAS。它是否也支持SAS身份验证?就像用户名是SA