我想知道如何使用GKSession从服务器向客户端发送请求? GKSession的引用类说如下:
- (void)connectToPeer:(NSString *)peerID withTimeout:(NSTimeInterval)timeout Parameters peerID The string that
标识要连接的对等方。
timeout取消连接之前等待的时间 尝试。
讨论
当您的应用程序充当客户端时,它会调用此方法 连接到它发现的可用对等体。当你的申请 调用此方法,将请求传输给远程对等方,谁 选择是接受还是拒绝连接请求。
如果我是服务员,我该怎么用?
答案 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