我想建立一個基於Javascript/HTML5地理定位的社交網絡,我想知道可能的架構的最佳選擇。客戶端 - 服務器可以很容易開發,但缺點是系統資源可能非常高,尤其是因爲應用程序必須管理移動(最壞的情況:汽車中的用戶必須看到汽車周圍的其他用戶)。是否可以在P2P網絡中進行空間搜索?
Basicaly,在客戶端 - 服務器架構,服務器任務將是:
- 收集並存儲緯度和用戶的經度(可能有幾千條)
- 使地理距離搜索該用戶(獲取用戶在他周圍的用戶列表)
- 建立並向客戶端發送用戶在列表中的位置的XML文件
這3個操作必須定期進行,每3或5秒進行一次,因爲我需要一張「活」地圖,顯示列表中的用戶在他們的環境(城市,城鎮)中移動。
所有這3點可以優化:
- 客戶移動10米時,以減少的數據的量來處理
- 「球形矩形」中MyISAM表與空間索引搜索發送他的位置(使用MBRContains)來卸載MySQL數據庫。
- 公共輸出文件:如果2個用戶位於x米半徑內(2個用戶彼此靠近),則發送的XML可以相同。
很難使負荷估計在這個階段,但我認爲,客戶端 - 服務器架構是不適合這種類型的應用程序和peer2peer的可能是一個很好的答案,如果當它們相互靠近2個客戶端可以通信。
我的觀點是:
是否有任何梅索德使可能的客戶到位於某一半徑沒有中央服務器的幫助下盲目搜索其他客戶端? (它可能與UDP廣播:-)
編輯:更正。 UDP Brodcast允許客戶機在任何地方,某個範圍或IP地址中輪詢機器。
感謝你的幫助, 弗洛朗
我GOOGLE「搜索空間P2P」,發現這兩個研究(它看起來是非常複雜的空間算法和我將嘗試使用基本的客戶端/服務器架構進行操作)。 http://www.springerlink.com/content/9r6wl93g52bg6c75/ http://www.ijcaonline.org/archives/number15/315-483 – Flo 2012-02-19 20:14:54