【发布时间】:2010-12-02 16:45:03
【问题描述】:
大家好,我是 iOS 版 Game Center 的新手。我正在尝试将多人游戏功能添加到我的游戏中并遵循文档。
到目前为止,我的 2 个客户可以成功获得匹配,即调用 matchmakerViewController:didFindMatch 回调并传递 GKMatch 对象。
但是在那之后我似乎永远被困在那里,因为根据文档,我必须等到所有玩家(在我的例子中是 2 个)真正连接后才能开始我的游戏。但似乎从未调用 match:player:didChangeState 回调来指示连接成功。好吧,我确定我的客户都在同一个 wifi 网络中(或者它是必须的吗?)有人可以在这种情况下启发我吗?我是否需要做任何额外的事情才能使客户端连接?非常感谢您的帮助!
【问题讨论】:
-
对问题的一些更新,我终于做了一个wireshark捕获所有流量,我刚刚发现Game Center需要使用STUN来克服Router/NAT/Firewalls,并通过偷看在 RFC 上,它说“STUN 在用于获取地址以与恰好位于同一 NAT 后面的对等方通信时不起作用。”,好吧,我想这可能是我的问题的根源,2我的客户都在 wifi 路由器的专用网络 (192.168.2.x) 中。但是我不确定在进行测试时克服这个问题的最佳方法是什么……有什么想法吗?
-
我和你有同样的问题,但我认为你上面提到的这个 STUN 问题不是问题,因为我使用连接到两个不同 NAT 网络的设备进行测试。
标签: iphone objective-c game-center