2012-12-22 42 views
1

我必須開發出租車應用程序。PhoneGap - 不斷髮送/提取車隊車輛的位置 - 最佳方法?

計劃/需求將是這樣:
     驅動程序的設備:
            - 發送位置服務器時,它的變化(在根據駕駛者的狀態的頻率 - 忙,可用等等。 - 我對可用驅動程序的準確位置更感興趣,而不是忙碌,但這不是很重要..)
       請求者的設備:
            - 獲得儘可能更新更多鈔票的所有驅動程序的地圖上的位置(一個谷歌的一個,最有可能)

事情我擔心的是:性能淨流量電池經濟性

回答

1

你需要這件事通過,你是否爲少量的驅動程序或大量創建此應用程序。

  • 這種方式對於選擇合適的js框架非常重要。 Phonegap當然是一個包裝。實時Java腳本客戶端/服務器通信體系結構的頂級組合是Node.js和SOCKET.IO框架。不幸的是,它們僅適用於乾淨的混合應用程序(應用程序沒有像jQuery Mobile,jQMoby等一些js移動應用程序框架)。

如果您打算使用js移動應用程序框架,您需要將它與骨幹js框架結合使用。不如Node.js和套接字IO好,但仍然是一個很好的組合。 Node.js和套接字IO在其他js移動應用程序框架中表現不佳。

  • 使用phonegap geolocation API獲取汽車lat和lng位置。與運動GPS應用不同,您不需要每秒刷新一次。汽車正在經歷預定義的路線,因此30秒刷新時間就足夠了。

  • 不要將30秒的間隔與實時(11:00:00,11:00:30,11:01:00 ...)連接起來,因爲每個設備都會嘗試發送位置刷新同一時間,這將殺死一個服務器基礎設施。在應用程序初始化後,每30秒更好一次。

  • 驅動程序的設備應用程序可能是一個小應用程序。它將用作後臺進程。因爲數據將每隔30秒發送一次,淨流量和連擊壽命都會成爲真正的問題。

  • 請求者設備將在每個預定義時間獲取一個批量數據(每個可能的車輛在圍繞請求者設備的某個半徑內)。在服務器發送批量數據之前,請求者必須發送其位置。它將被用來獲得最近的汽車。

  • 谷歌地圖API手機V3將用作地圖在請求者設備。因爲這是一個移動設備和移動框架不知道他們出色的表演,不要用它做顯示器100多個汽車(幾百最好在桌面上的web應用程序的情況下)。

  • 我的最後一個建議是,如果有可能創建一個本地移動應用,因爲混合移動應用程序是不是善於處理實時數據。至少沒有大量的數據。堅持更長的轉換時間間隔,它會節省您的電池。並且不要將XML用作客戶端/服務器數據。它有很大的數據開銷。

Node.js

Socket.IO

+0

不幸的是,我需要打車的應用程序的能力。沒有預定義的路線。我可能需要查看所有的車輛,無論他們的位置是否與請求者相關。所以我們可以從字面上談談出租車應用程序的需求。我可能會冒昧改變這個問題。所以,從你有什麼建議,我看,這將是recomanded一個純粹的原生移動應用對於這一點,雖然這將是巨大的使用PhoneGap的和jQueryMobile給它下發展 - 我可以節省大量的時間與那些。 – Michael

+0

我告訴你也可以在出租車上的應用程序使用,像一個普通的汽車出租車可以走,只有通過預定義的街道。所以30秒仍然是一個很好的刷新率。 jQuery Mobile和Phonegap仍然是一個很好的平臺,但對於大量的汽車來說還不夠。 – Gajotres

+0

我明白了。通知怎麼樣?最初,我考慮過不時地做一些Ajax,並檢查是否有任何請求已經爲特定的驅動程序。然後我閱讀了Google Cloud Messaging。你有沒有和PhoneGap一起工作?你能給我一些關於它的建議/資源嗎?謝謝! – Michael