2

我使用 GameKit 框架制作了一个多人游戏,其中 2 个 iPhone/iPod 可以通过蓝牙相互连接并播放。

我正在考虑一种方法来选择可以首先播放的设备。所以合乎逻辑的解决方案是选择连接的主机。GKSession 中甚至有服务器和客户端吗?他们都是同龄人吗?我应该采取哪条路线来实现我所需要的?

4

1 回答 1

6

基本上,您可以根据需要配置会话。

从苹果文档:

会话根据会话初始化时设置的会话模式发现网络上的其他对等点。您的应用程序可以将会话配置为服务器,它在网络上通告服务类型;搜索广告服务器的客户端;或对等点,它像服务器一样做广告,同时像客户端一样搜索。

作为服务器的应用程序副本通过调用 initWithSessionID:displayName:sessionMode: 来初始化会话,会话模式为 GKSessionModeServer 或 GKSessionModePeer。应用程序配置会话后,它通过将会话的 isAvailable 属性设置为 YES 来通告服务。

作为客户端的应用程序副本通过调用 initWithSessionID:displayName:sessionMode: 来初始化会话,会话模式为 GKSessionModeClient 或 GKSessionModePeer。配置会话后,您的应用程序通过将会话的 isAvailable 属性设置为 YES 来搜索网络广告服务器。如果会话配置了 GKSessionModePeer 会话模式,它也会将自己宣传为服务器,如上所述。

因此,如果您使用 GKSessionModePeer 来初始化会话,那么您就有了对等点(充当服务器和客户端)。如果您想将服务器与其客户端区分开来,请使用 GKSessionModeServer 对其进行初始化。

亲切的问候。

于 2009-06-24T13:35:45.023 回答