【问题标题】:Android Client Server Communication ConfusionAndroid客户端服务器通信混乱
【发布时间】:2011-03-03 05:32:21
【问题描述】:

项目描述: 我必须在 android 中创建一个应用程序,该应用程序从 GPS 获取纬度和经度,并将它们的位置和标识转发到服务器。在服务器端应该有一个网页,它不断地接收来自 Android 应用程序的消息并在谷歌地图上显示位置。

假设在我们的应用程序运行的不同地方有 10 台 Android 设备。在服务器端,我们必须在设备所在位置的 Google 地图上显示 10 个标记。

我做了什么:我在 android 中做了一个应用程序,它可以从 GPS 获取纬度和经度。我熟悉android上的套接字编程。我已经在服务器端实现了网页,它有谷歌地图并显示了标记。

困惑:

  1. 如何制作服务器?

  2. 如何将数据从 Android 传输到服务器,以及从 Android 接收数据的服务器端需要什么应用程序。是否需要在服务器的特定端口或网页上自行绑定的任何桌面或控制台应用程序都足以让我实现这个目标。

  3. 我必须使用什么协议? UDP、TCP/IP,还是直接使用 HTTP 或 HTTPS 流?

我只需要一些关于我的问题的指导,因为我从未在 Android 和客户端服务器通信方面工作过。如果您认为这个问题含糊不清,请推荐一本关于网络的书籍或任何您认为适合此类问题的书籍。

【问题讨论】:

    标签: android client-server communication


    【解决方案1】:

    一个常见的设置可以是这样的:

    有以下几点:

    • 服务器端的文件 (PHP),其唯一目的是将从 android 设备接收到的数据 (lat,lng) 注入 MySql 数据库
    • 服务器端的文件 (PHP),其唯一目的是从 MySql 数据库中获取数据 (lat,lng)。该文件应接收时间戳作为其参数,并返回在该时间戳之后保存的所有 lat,lng 值(为此,您的数据库必须存储时间戳)
    • 一个只处理地图的文件 (HTML+JS) 实现了一个 AJAX 调用,该调用定期轮询第二个文件并使用时间戳值获取新的 lat、lng 值。当它获取值时,它会将它们绘制在地图上
    • 在 Android 设备上,使您的应用程序在特定时间间隔内不断将其位置发送到第一个 PHP 文件。

    这样,你得到你想要的。

    另一方面,如果我们谈论客户端-服务器架构,客户端发送请求并获得响应。就是这样。为此,客户端访问服务器端脚本以获取这些响应。同样,您的 android 应用程序访问特定的服务器端脚本并获得响应。就是这样。

    如果您想实现与安卓的服务器发起的通信,您必须使用推送机制,例如云到设备消息传递 (C2DM)

    干杯。

    【讨论】:

      【解决方案2】:

      阿法克...

      首先你需要使用Android SDK中提供的Location baser服务获取GPS的数据(见Location MANager, Location Listener等...)

      困惑:- 困惑在于

      如何制作服务器。

      Ans: 帮不了你,因为我不擅长配置服务器

      如何将数据从 Android 传输到服务器,以及服务器端需要什么应用程序来接收来自 Android 的数据。是否需要在服务器的特定端口或网页上自行绑定的任何桌面或控制台应用程序足以让我实现此目标。

      Ans:您可以使用网络服务传输包含纬度和经度的数据,该网络服务使用 get 或 post 方法接收数据,然后在每次调用 OnLocationChanged 方法时将其转储到您的数据库中在位置侦听器上。最好你可以在你的服务器中配置一个 mysql 数据库,然后将它用于你的数据存储。您需要设计的网页经常从数据库中获取与位置相关的数据,然后相应地显示标记。

      我必须使用 UDP 或 TCP/IP 什么协议,或直接使用 HTTP 或 HTTPS 流?

      Ans:如果您了解 php,那么您可以使用 REST 服务,或者如果您是 .Net 类型的人,您可以使用 SOAP 网络服务,该服务使用简单的 http post 方法将数据更新到服务器。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 2016-05-05
        • 2013-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多