1

我必须开发一个出租车应用程序。

计划/需求是这样的:
    司机的设备:
       - 当位置发生变化时将位置发送到服务器(频率取决于司机的状态 - 忙碌、可用等。 - 我对可用司机的准确位置更感兴趣,而不是忙碌的一个,但这不是很重要..)
   请求者的设备:
       - 尽可能更新地图上所有司机的位置(最有可能是谷歌)

我担心的是:性能净流量电池经济性

4

1 回答 1

1

你需要解决这个问题,你是为少数司机还是为大量司机创建这个应用程序。

  • 这就是选择合适的js框架很重要的方式。当然,Phonegap 将是一个包装器。实时 java 脚本客户端/服务器通信架构的顶级组合是 Node.js 和 SOCKET.IO 框架。不幸的是,它们仅在干净的混合应用程序中有用(应用程序构建时没有一些 js 移动应用程序框架,如 jQuery Mobile、jQMoby ....)。

如果您要使用 js 移动应用程序框架,则需要将其与骨干 js 框架结合使用。不如 node.js 和套接字 IO 好,但仍然是一个很好的组合。Node.js 和 socket IO 不能很好地与其他 js 移动应用程序框架配合使用。

  • 使用 phonegap 地理定位 API 获取汽车的 lat 和 lng 位置。与运动 GPS 应用程序不同,您不需要每秒刷新一次。汽车正在通过预定义的路线,因此 30 秒的刷新时间就足够了。

  • 不要将 30 秒间隔与实时时间(11:00:00、11:00:30、11:01:00 ...)联系起来,因为每个设备都会尝试同时发送位置刷新,并且将杀死服务器基础架构。最好在应用程序初始化后每 30 秒计时一次。

  • 司机的设备应用程序可以是一个小应用程序。它将作为后台进程工作。因为数据将每 30 秒发送一次,净流量和电池寿命是一个真正的问题。

  • 请求者设备将在每个预定义的时间获取大量数据(围绕请求者设备的某个半径范围内的每辆可能的汽车)。在服务器可以发送批量数据之前,请求者必须发送其位置。它将用于获取最近的汽车。

  • Google Maps mobile API v3 将用作请求者设备上的地图。因为这是一个移动设备,而移动框架并不知道它们的出色性能,所以不要使用它来显示超过 100 辆汽车(在桌面 Web 应用程序的情况下最多只有几百辆)。

  • 我最后的建议是,如果可能的话,创建一个原生移动应用程序,因为混合移动应用程序不擅长处理实时数据。至少没有大量的数据。坚持更长的过渡间隔,它将节省您的电池。并且不要考虑使用 XML 作为客户端/服务器数据。它有很大的数据开销。

节点.js

套接字.IO

于 2012-12-22T17:59:17.790 回答