gpt4 book ai didi

iphone - 实时 GKMatch 断开连接问题

转载 作者:行者123 更新时间:2023-11-29 13:21:18 26 4
gpt4 key购买 nike

我使用 GameCenter 和实时服务器-客户端网络策略创建了一个纸牌游戏。在沙盒中测试时,游戏运行完美(建立连接、选择最佳主机、发送/接收数据),有时游戏甚至可以毫无问题地完成。然而,大多数情况下,在这两种设备上,我都会收到一个 match:player:didChangeState: 回调,通知我对方用户已断开连接。它经常令人沮丧地发生,并且似乎与不活动或超时没有任何关系。我的想法是我可能正在处理 GameCenter 服务器上的正常网络延迟,因为在极少数情况下玩家似乎会重新连接并再次发送数据。还有其他人使用 GKMatch 和 Real Time GameCenter 处理这些问题吗?我正在运行 iOS 6.1 并连接到同一 wifi 网络的 iPhone 5 和 iPhone 4 上测试该应用程序。

最佳答案

我在 MAX player=2 时遇到了同样的问题。对我来说是 GKMatch 的代表

- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state; 

即使用户在游戏中处于事件状态,也会将“state”返回为“GKPlayerStateDisconnected”。对我有用的解决方案如下:在我的 NetworkManager 类中,我将当前匹配引用为 gkMatch。因此,每当我再次获得“状态”为“GKPlayerStateDisconnected”时,我都会检查它是否真的与远程播放器断开连接。为此,我使用“gkMatch”数据如下:ps:如果 session 实际上没有断开,它包含的字符串为“connected”。

NSString *gkMatchString = [NSString stringWithFormat:@"%@",[NetworkManager sharedManager].gkMatch];

if ([gkMatchString rangeOfString:@"connected"].location == NSNotFound)
{
NSLog(@"Session is actually closed.");
}else{
NSLog(@"Session is NOT yet closed.");
}

它对我有用,所以如果它对任何人有帮助,请告诉我。

关于iphone - 实时 GKMatch 断开连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14299248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com