2012-03-19 151 views
0

我正在建立一個android應用程序,我希望應用程序共享信息的所有用戶都會在我的服務器中拋出一個php腳本。
例如:我有一個谷歌地圖,我想看到我所有的朋友的位置。 我的應用程序的每個用戶將每隔幾秒鐘將他的當前位置發送到php腳本(服務器)。
我想要PHP腳本發回給每個用戶,他的所有朋友的位置。 這樣做的最好方法是什麼?
安卓遠程服務器

我想的很少,而且會很樂意得到幫助啓動它們:
1.我應該只發送請求到服務器,並在同一請求得到的回報答案,這將包括所有我的朋友的位置?
2.我應該使它成爲雙向通信(使用套接字也許?),並且每當服務器得到更新時,他將它發送給所有用戶? (我甚至不知道如何開始做吧..)
3.如果我使用的2號,我應該有某種事件偵聽器將等待並看看是否有來自服務器的新的消息?

回答

0

第一種方法可能會更容易實現。

每一位朋友,同時更新他的位置將數據發送到可以存儲在MySQL數據庫服務器。也許當一個人更新一個位置時,推送通知可以發送給他的每個朋友(c2dm推送通知很容易和有效)。一旦用戶獲得推送通知,它就會向服務器發出一個請求,並以相同的響應獲取必要的數據。這是一個簡單可靠的方法。

得到的答覆是徵求意見太長,所以我把它放在這裏。 回答你的問題: 1.當你發送你的位置時,你的朋友應該被通知。所以你更新和檢索MySQL數據不會達到目的。你的朋友應該知道,他們有時間從mysql檢索值。因此推送通知給你的朋友。

  1. 對於一百萬用戶,如果您希望使用推送通知,您可能需要購買適當的計劃。一些數據可以與推送通知一起發送,如果該數據量足夠滿足您的需求,則可能不需要客戶端與服務器建立連接就可以檢索數據。從而消除服務器的負載。如果數據量太大,那麼你的客戶端將不得不聯繫服務器。在這種情況下,您的服務器應該能夠響應最多1,000,000個用戶(罕見)http請求。這我不知道,如果你的服務器能夠處理

我希望答案幫助。詢問你是否有任何進一步的疑問。

+0

謝謝Anurag!我有2個問題: 1.爲什麼我需要推?我不能只寫一個更新mysql的方法,並以相同的方法獲取其他人的當前位置併發送它作爲回報? 無論如何,我將有很多電話的腳本,我想把它設置爲最小.. 2.這種方法是有用的1,000,000用戶? – 2012-03-19 14:30:11

+0

回答您的問題: – 2012-03-19 14:40:57

+0

假設我的服務器可以處理這種數據傳輸的,最好的方法是重複發送數據給它.. 如果我理解你的權利,只要沒有更新,不會有數據傳輸在服務器和應用程序之間..只有當服務器得到更新時,它纔會告訴用戶連接並獲取更新的信息。 有沒有我可以得到這個推技術的教程? – 2012-03-19 15:11:22