【讀書筆記】iOS網路-使用Game Kit實現裝置間通訊,ioskit
Apple的Game Kit架構可以實現沒有網路狀況下的裝置與裝置之間的通訊,這包括沒有蜂窩服務,無法訪問Wi-Fi基礎設施以及無法訪問區域網路或Internet等情況。比如在叢林深處,高速公路上或是建築物的地下室等。
一,Game Kit基礎
除了底層的網路通訊特性外,Game Kit還包含了一些特定於遊戲的技術,比如成就,熱門排行榜和比賽等。
藍芽雖然具有不依賴於網路基礎設施的獨特優勢,不過也有一些較大的缺陷。32英尺的最大接接範圍比Wi-Fi網路小太多了,而後者可以跨越多個訪問點來覆蓋更大範圍。在Wi-Fi網路中,每個端點的可用頻寬是藍芽的將近10倍。雖然藍芽無線電要比Wi-Fi更省電,但如果所有端點都可以通過這兩種類型的訪問串連,那麼Game Kit依然會首選Wi-Fi,而非藍芽。雖然只考慮一種串連起來是錯誤的,不過實際上這會降低裝置總體的電量消耗。串連到Wi-Fi網路的iOS裝置會使用該串連進行背景所有資料請求,比如周期性的郵件檢查或推播通知等。由於將會使用該無線電,因此同時還使用藍芽無線電實際上會增加電量消耗。
通過Game Kit會話進行的所有通訊都是未加密的。如果資料報的機密對於應用來說是非常重要的,比如,移動付款裝置會傳輸信用卡資訊進行註冊,那麼開發人員就要負責在將資料發送給GKSession前對流量進行加密。
二,點對點網路
在點對點Game Kit的串連下,網路中任何端點的行為同是既是伺服器又是用戶端。在很多情況下,同一台裝置會在商務程序的處理過程中,在用戶端與伺服器角色之間切換,不過可以使用單個P2P串連,而不必重新串連裝置來轉換為新的角色。P2P還非常適合於在流程開始前並不知曉端點角色的流程。
1,串連到會話。
2,向端點發送資料。
1)iOS裝置所用的ARM處理器使用的是小端位元組序。
大端與小端位元組序是表示位元據集的兩種方式。大端位元組序從最重要到最不重要的順序來儲存位元組,而小端位元組序則正好相反。大端位元組序的一個例子就是電話號碼,其中數位分組是從最重要(國家代碼)到最不重要(使用者號碼)排列的。位元組序起源於在記憶體中儲存值的硬體實現,標準化網路位元組序的目的是防止小端機器在不知道需要轉換的情況下不小心解釋以大端位元組序儲存的位元據。大端與小端這兩個名字起源於Jonathon Swift的小說《格利佛遊記》,其中描述了打雞蛋的兩種不同方式。
三,用戶端-伺服器通訊
四,總結
Game Kit在iOS生態系統中佔有獨特的角色,因為它可以整合藍芽可以建立附近裝置的網路。其Wi-Fi功能是對Bonjour服務的簡易封裝;然而,其真正的優勢在於可以使用相同的代碼基來支援兩種網路技術。其極具創新性的P2P模型為應用中加入網路提供了空前的靈活性,用戶端-伺服器模型則為開發人員提供了更為熟悉的環境,同時提升了穩定性。
參考資料:《iOS網路進階編程-iPhone和iPad的公司專屬應用程式開發》