移动应用程序 - 与外部服务器通信

时间:2016-09-08 02:53:30

标签: php android mysql azure xamarin

我正在构建一个需要与服务器保持持续通信的移动项目,我需要一些信息。我知道如何构建本地应用程序,但这是我第一次构建需要外部调用服务器/身份验证服务的应用程序。

我正在寻求指导如何继续以及使用哪些服务/服务器。

我需要什么类型的服务器/数据库? 我猜我会要求一个API服务,但不知道如何选择/制作一个。

我想使用azure服务/数据库,但我也不想依赖它。我想拥有自己的网址,我发送请求并与服务器/数据库进行交互,以后我可以很容易地移动到另一台主机。

我主要开发网站,我熟悉php / laravel + Mysql,但我认为在这种情况下,仅仅为服务器后端创建一个laravel应用程序就太过分了。

该应用仅限移动应用,所以我不希望有一个网页。只是一个外部服务器/数据库,其中将保存数据。

首先我需要一个身份验证服务 - 每个用户都会在手机上注册,然后将其保存在我的外部服务器/数据库中。然后,当他们需要登录时 - 他们将在手机上输入登录详细信息,这将查询外部服务器/数据库,如果经过验证,则从服务器获取他们的详细信息。

3 个答案:

答案 0 :(得分:0)

首先,您需要确定您需要哪种服务器通信。它是实时的和不变的?然后你需要一个websocket。当您需要发送或获取数据时,它会突然爆发吗?那么你需要某种web服务(REST,RPC,SOAP)。然后你必须评估你将拥有的用户负载。最后,你将拥有的人力资源。

根据您的问题,我认为REST网络服务将绰绰有余。你可以:

为每组相关资源创建REST服务。示例:/ user URL应该处理注册,登录,注销和用户更新操作。

为每个操作创建一个方法并处理它们。然后,从REST服务类调用该方法。

- 根据您使用的用户数量和技术,创建一个服务器来处理请求,或者将您的REST项目上传到服务器(例如,tomcat)。

创建一个应用程序并从那里使用REST服务。

你可以选择很多技术来做这些事情。我认为PHP允许创建REST服务。 Java也是一个非常好的选择,因为你可以在服务器和Android应用程序中使用相同的代码。 Node.Js也很受欢迎,因为你不需要服务器并且使用NIO(虽然java可以使用jetty来做这两件事并且也有多线程); golang和scala都具有出色的性能(golang虽然更容易学习,但它不需要使用外部Web服务器)。

希望这有帮助。

答案 1 :(得分:0)

对于移动应用程序,最好的是REST(代表性状态转移),因为它是轻量级的并且可以在其他技术中使用。我的项目包括REST和移动应用程序以及Web应用程序,它运行良好。

答案 2 :(得分:0)

在这种情况下,我们通常会为客户端构建REST API服务。如您熟悉Laravel,可以参考http://www.programmableweb.com/news/how-to-build-restful-apis-using-php-and-laravel/how-to/2014/08/13#apiu了解如何使用Laravel构建REST API服务。您还可以利用其他轻量级的第3部分PHP框架来构建REST API服务。

您可以在本地创建和开发应用程序,然后部署到Azure Web Apps。有关详细信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/app-service-web-php-get-started/

有几家供应商在Azure上提供MySQL服务。 ClearDB是Azure for MySQL的BaaS。您还可以使用VM来托管MySQL服务。例如。 MySQL by BitnamiMySQL by Docker