如何使用GKSession从服务器向客户端发送请求?

时间:2012-11-03 16:52:39

标签: objective-c ios gksession

我想知道如何使用GKSession从服务器向客户端发送请求? GKSession的引用类说如下:

- (void)connectToPeer:(NSString *)peerID withTimeout:(NSTimeInterval)timeout Parameters peerID The string that
  

标识要连接的对等方。

     

timeout取消连接之前等待的时间   尝试。

     

讨论

     

当您的应用程序充当客户端时,它会调用此方法   连接到它发现的可用对等体。当你的申请   调用此方法,将请求传输给远程对等方,谁   选择是接受还是拒绝连接请求。

如果我是服务员,我该怎么用?

2 个答案:

答案 0 :(得分:0)

作为服务器,您可以使用

进行客户端连接
peer2peerSession.available = YES;

答案 1 :(得分:0)

以下是将GKSession实例创建为服务器的示例:

[[GKSession alloc] initWithSessionID:sessionID displayName:@"Chris" sessionMode : GKSessionModeServer];

以下是如何将GKSession创建为客户端的示例:

[[GKSession alloc] initWithSessionID:sessionID displayName:@"Angel" sessionMode : GKSessionModeClient];

GKSessionModePeer将创建一个GKSession实例,该实例将自己宣传为服务器,同时寻找广告服务器(换句话说,充当搜索服务器的客户端)。

然后,您需要为GKSession对象设置委托,之后委托需要实现以下委托方法:

- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState : (GKPeerConnectionState)state

在上述方法中,您将从会话中收到设备已变为可用,变为不可用,已连接等的消息。

发送请求:

[_session connectToPeer:peerID withTimeout:_session.disconnectTimeout];

接受请求:

[_session acceptConnectionFromPeer:peerID error:&error];

涉及到很多代码,最适合您理解所有内容的教程位于此处:Simple Card Playing game using GKSession