gpt4 book ai didi

ios - GKPeerPickerController 的连接问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:52 32 4
gpt4 key购买 nike

我正在使用 GKSession 和 GKPeerPickerController 开发一款 iOS 游戏。我发现连接两台 iOS 设备的过程缓慢且不可靠,即使它们彼此相邻也是如此。我们将我的设备称为“设备 A”和“设备 B”。

这是通常发生的情况:

  1. 在每台设备上,我都点击了我的应用程序的连接按钮。然后每个设备都会显示“iPad、iPhone 或 iPod touch”窗口。

  2. 通常很快,两个设备都会注意到对方的存在。

  3. 然后我告诉其中一台设备(比如设备 A)连接到另一台设备。

  4. 很快,设备 B 的窗口显示设备 A 不可用。

  5. 这就是烦人的地方。大约1秒到永不等一段时间后,设备B会弹出一个窗口说设备A要连接,并询问设备B是否要接受连接。

  6. 如果确实弹出上述窗口,则一切正常进行。但这有时需要很长时间,有时根本不会发生。

我有三台设备,无论使用哪两台,我都会遇到类似的问题。

我能做些什么吗?

我的连接方法非常简单:

-(void) findPeerPickerOpponents {
GKPeerPickerController *picker;
picker = [[GKPeerPickerController alloc] init];
picker.delegate = self;
[picker show];
[self.connectionDelegate disableIdleTimer];
}

最佳答案

好的,你应该做什么:
- 假设您有设备 A、B 和 C
- 设备A正在扫描,设备B刚刚开始扫描
- 设备 A 将设备 B 视为新的对等方 - 它向 B 发送邀请
- 设备 B 收到邀请 - 它自动批准它,两个设备都已连接,没有通知显示给用户,除了设备出现在大厅中
- 设备 C 出现
- 设备 A 和 B 尝试连接到它,它们会自动连接并出现在大厅
- 玩家在设备 A 上触摸设备 B
- 设备 A 向 B 发送 WANNAPLAY 数据包
- B 弹出询问玩家是否想和 A 一起玩 - 玩家回答是
- 设备 B 向 A 发送 ACCEPTED 并断开除 A 之外的所有人(通过发送 DISCONNECT)
- 设备 A 被接受并断开除 B 之外的所有人(通过发送 DISCONNECT)
- 设备 C 获得 2x DISCONNECT 并从其大厅中删除 A 和 B

它的效果比标准方法好得多,即使它的工作量多了 10 倍 - 我用两种方法都做了,这是一个非常好的解决方案。

关于ios - GKPeerPickerController 的连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052661/

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