我正在BlueTooth为. 出于连接目的,我正在使用. 但是由于一些特殊要求的应用程序我不能使用默认的. 所以我改为创建一个和组合来检测对等点。找到对方后,就可以聊天了。WifiiPhoneGameKitGKPeerPickerControllerGKSessionGKSessionDelegate
现在我已经在三个mac-minis使用上测试了聊天功能simulator,一个模拟器和一个iPod,一个iPhone和一个Simulator。我可以在上述所有场景中聊天。但是有些如何iPhone和iPod不会检测到对方。
我也很好奇所有这些设备之间发生的连接类型。因为理论上GameKit支持两者,BlueTooth和WiFi。现在的问题是,让我们在和GKPeerPickerController之间进行具体选择(不幸的是,任何地方都没有记录 的实现。)这很好,但是当一个人实现他或她自己的和Combo 时,自定义场景呢?当使用唯一可用的方法创建对象时:BlueToothWiFiWiFiGKSessionGKSessionDelegateGKSessioninit
– initWithSessionID:displayName:sessionMode:
这提供的唯一配置选项是sessionMode,但它只有三个选项
GKSessionModeServer,
GKSessionModeClient,
GKSessionModePeer,
Bluetooth其中没有一个表示和之间的连接选择WiFi。
但是我已经禁用bluetooth了iPod它并用它测试了它,mac-mini所以我猜这是使用WiFi. 同样在日志中,我得到以下行:
DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.
和部分让我觉得DNSServiceRegister沟通udp已经结束TCP/IP。
那么这是否意味着当我开始时GKSession默认GKSessionDelegate的通信方法是仅 WiFi,或者它是否同时支持WiFi两者bluetooth(尽管我从来没有得到任何迹象表明BlueTooth正在发生连接)。
但GameKit应该主要是关于BlueTooth对吧?任何人都可以说明到底发生了什么吗?
您还看到有人实现了 WiFi 接口的任何示例代码 GKPeerPickerController吗?
解决了:
好的 我自己找到的。GKSession和GKSessionDelegate我在问题中提到的自定义实现适用于bluetooth和WiFi。实际上iPhone (JailBroked)我使用的有一些问题,BlueTooth可能是阻止Gamekit正常工作,在硬重置手机并关闭Airplane模式后,bluetooth关闭几次就可以bluetooth在手机上工作。WiFi现在该应用程序在和BlueTooth模式下都可以正常工作。