2013-03-11 88 views
2

我們正在爲企業場景構建iPad應用程序。用戶將使用iPad在特殊企業活動中檢查客人。可能有多達十二臺iPad用於檢入,並且他們都需要準確的數據,包括已簽入的人員,何時以及何時輸入了任何票據。問題在於通常沒有互聯網接入。所以iPad必須能夠相互溝通。所有的iPad都會在一個地方,但它們可能會相距100-300英尺。我想我們可以包含一個要求,即如果距離太遠,用戶需要定期相互靠近。需要多個iPad互相溝通

我們願意接受點對點解決方案,其中的iPad實際上可以互相交談,或者我們可以有一臺中央筆記本電腦充當服務器,並且iPad都與服務器通話。任何想法如何做到這一點,有什麼選擇,如果我們需要建立一個WiFi網絡等,等等。

在此先感謝。

+0

4G iPad是否不是避免互聯網匱乏的選擇?然後,您可以擁有一個正常的託管服務器/ API並完成它。 – 2013-03-11 03:36:20

+3

爲什麼不用中央計算機設置adhoc WiFi網絡?你不需要上網,只需要一些WiFi設備。 – rmaddy 2013-03-11 03:44:56

+0

如果David或rmaddy的建議都不適合你,你應該通過WiFi或BT來研究GameKit及其點對點網絡功能。不過,我會先選擇他們的解決方案之一! – 2013-03-11 03:56:16

回答

3

由於您對中央筆記本電腦開放,我會選擇與所有iPad連接的WiFi基站。

然後,您可以獲得一個簡單的服務器,當用戶在iPad上籤入並將其存儲在數據庫中時,可以告訴服務器 - 如果有人試圖再次簽入,則很容易發出該人已有的回覆已經簽入。

作爲備份,或者代替服務器,您可以使用Gamekit與託管的匹配項(無限制的設備) - 只要所有的iPad都在同一個網絡上,他們應該能夠看到對方。然後,您可以向所有參與者進行廣播,以便其他設備在本地保存該信息。它可能比服務器更成問題,但也可能更健壯。

無論在哪種情況下,請確保所有可能的錯誤狀況(如網絡或服務器的完全故障或連接到其他iPad的能力)都使iPad處於仍能檢查訪客的狀態,並在服務恢復時直接播放數據。您不希望因網絡故障而等待的客人!

+0

+1:我喜歡這個答案。不過,我個人不會爲每次登記而廣播費用,而只需要服務器提供所有登記(設置並調用API以獲取所有登記)。也許你可能也會讓服務器返回一個'好'或'錯誤'的響應,每當iPad試圖檢查用戶時,其中一個錯誤是用戶已經簽入了?這對我來說似乎是一個更好的延遲加載策略,可能需要更少的編程工作。 – 2013-03-11 04:07:59

+0

最好的努力,更好的可能是一個偉大的方法!但是如果可能的話,我會在某種冗餘上花費一些額外的努力,因爲我只知道在某個事件中在筆記本電腦上運行的服務器會以某種方式失敗,技術原因只是可能的失敗世界的一小部分。 – 2013-03-11 04:10:29