多个Azure移动应用之间的通信?通过HttpClient或不同的选项? (.Net的后端)

时间:2017-06-15 18:53:27

标签: azure azure-mobile-services azure-sdk-.net

简化方案:

一个Azure移动应用程序"服务管理"在欧盟(包括数据库)

两个Azure移动应用程序,相同的代码,一个在欧盟和#34; ServiceEU"一个在美国" ServiceUS" (每个都有自己独立的数据库)

客户登录ServiceManagement,选择他希望将数据托管在哪个区域。客户购买服务选项 - >付款记录,选定的选项等保存在ServiceManagement中。

现在,ServiceManagement连接到ServiceEU或ServiceUS,并告诉它为客户创建相应的服务计划。除了客户购买服务选项的时间之外,服务之间不会进行任何通信。

除了HttpClient之外还有其他任何选项可以处理Azure移动应用和服务管理之间的通信。和" ServiceEU"或者" ServiceUS"?

我目前的代码似乎有效但我无法找到这样的案例的任何资源/文档。所以我不确定是否有更好的选择。

/// <summary>
/// Hosted in ServiceManagement
/// </summary>
/// <returns></returns>
[HttpGet]
[ActionName("completeRemote")]
[ResponseType(typeof(String))]
public async Task<string> completeRemote()
{

    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Add("ZUMO-API-VERSION", "2.0.0");

    //Calling completeAll from different Azure Mobile App "<url>"
    var res = await client.GetAsync("https://<url>/api/Test/completeAll");
    res.EnsureSuccessStatusCode();
    var str = await res.Content.ReadAsStringAsync();
    str = JsonConvert.DeserializeObject<String>(str);

    //verify request completed
    //Do something with str

    return str;
}

请记住,这是一个非常简化的概念

2 个答案:

答案 0 :(得分:1)

  

除了HttpClient之外,还有其他任何选项可以处理Azure移动应用程序与服务管理之间的通信。和&#34; ServiceEU&#34;或者&#34; ServiceUS&#34;?

据我所知,C#mobile app后端是一个web api。通常我们会使用httpclient将请求发送到web api应用程序以获得结果。

如果您不想使用httpclient,可以使用azure mobile client SDK。

编写代码很容易。

您可以从Nuget Package安装它。

Install-Package Microsoft.Azure.Mobile.Client

以下是示例代码,希望它能为您提供一些提示:

注意:它仍然会将请求发送到移动应用后端。

    public static async Task<string> GetApplicationToken()
    {
        var clientUri = $"https://your-mobile-app-id.azurewebsites.net";

        var client = new MobileServiceClient(clientUri);
        var response = await client.InvokeApiAsync<string>("/api/values", HttpMethod.Get, null);
        return response;
    }

答案 1 :(得分:0)

您可以使用Azure Service Bus(或托管您自己的服务总线)

  

当您需要高度可靠的云时,依赖Azure Service Bus   应用程序和服务之间的消息服务,即使是一个或多个   更多是离线。

关于维基百科上的企业服务总线:

  

企业服务总线(ESB)实现通信系统   在一个相互作用的软件应用程序之间   面向服务的体系结构(SOA)。

     

...

     

它实现了分布式计算的软件架构   因此也实现了更一般的特殊变体   客户端 - 服务器模型。而通常任何使用ESB的应用程序都可以   表现为服务器或客户端。