0

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

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

标识要连接的对等方。

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

讨论

当您的应用程序充当客户端时,它会调用此方法来连接到它发现的可用对等点。当您的应用程序调用此方法时,会向远程对等方发送一个请求,由后者选择是接受还是拒绝连接请求。

如果我是服务器,我应该使用什么?

4

2 回答 2

0

作为服务器,您可以让自己与客户端连接

peer2peerSession.available = YES;
于 2013-06-27T09:54:40.850 回答
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

于 2013-07-02T07:09:48.343 回答