我使用GameKit框架製作了一款多人遊戲,其中2部iPhone/iPod可以通過藍牙連接到對方並播放。如何從iPhone中的客戶端通過GameKit從藍牙中識別主機
我想到了一種方法來選擇哪個設備將能夠首先播放。所以合乎邏輯的解決方案是選擇連接的主機。 GKSession中是否還有服務器和客戶端?他們都是同齡人嗎?我應該採取哪條路線來實現我所需要的?
我使用GameKit框架製作了一款多人遊戲,其中2部iPhone/iPod可以通過藍牙連接到對方並播放。如何從iPhone中的客戶端通過GameKit從藍牙中識別主機
我想到了一種方法來選擇哪個設備將能夠首先播放。所以合乎邏輯的解決方案是選擇連接的主機。 GKSession中是否還有服務器和客戶端?他們都是同齡人嗎?我應該採取哪條路線來實現我所需要的?
基本上,您可以根據自己的喜好配置會話。
從Apple文檔:
會話發現在此基礎上 在會話初始化 設置會話模式 網絡上的其他同行。您的應用程序可將 配置爲服務器, 在 網絡上公佈服務類型;一個客戶端,它搜索 廣告服務器;或同級,其中 像服務器一樣通告並且同時像客戶一樣搜索 。
充當 服務器應用程序的副本中初始化 調用 initWithSessionID會話:顯示名:sessionMode: 有兩種 GKSessionModeServer或 GKSessionModePeer的會話模式。在 應用程序配置會話後, 通過將 會話的isAvailable屬性設置爲YES來通告該服務。
充當 客戶端應用程序的副本中初始化 調用 initWithSessionID會話:顯示名:sessionMode: 有兩種 GKSessionModeClient或 GKSessionModePeer的會話模式。在配置 會話後,您的應用程序通過 搜索 廣告服務器的網絡,將會話的isAvailable 屬性設置爲YES。如果使用GKSessionModePeer 會話模式配置的會話爲 ,則會將其本身作爲服務器通告爲 ,如上所述。
因此,如果您使用GKSessionModePeer來初始化會話,您有對等體(同時作爲服務器和客戶機)。如果您想要將服務器與客戶端區分開來,請使用GKSessionModeServer對其進行初始化。
親切的問候。
但由於它是一個應用程序,在我的代碼中,我將不得不做出決定:服務器或客戶端。這雖然不起作用。我需要一個應用程序實例作爲服務器,另一個作爲客戶端。 或者只是找到其他方法來選擇哪個播放器將首先播放... – Dimitris 2009-06-24 15:42:04