我正在BlueTooth
为. 出于连接目的,我正在使用. 但是由于一些特殊要求的应用程序我不能使用默认的. 所以我改为创建一个和组合来检测对等点。找到对方后,就可以聊天了。Wifi
iPhone
GameKit
GKPeerPickerController
GKSession
GKSessionDelegate
现在我已经在三个mac-minis
使用上测试了聊天功能simulator
,一个模拟器和一个iPod
,一个iPhone
和一个Simulator
。我可以在上述所有场景中聊天。但是有些如何iPhone
和iPod
不会检测到对方。
我也很好奇所有这些设备之间发生的连接类型。因为理论上GameKit
支持两者,BlueTooth
和WiFi
。现在的问题是,让我们在和GKPeerPickerController
之间进行具体选择(不幸的是,任何地方都没有记录 的实现。)这很好,但是当一个人实现他或她自己的和Combo 时,自定义场景呢?当使用唯一可用的方法创建对象时:BlueTooth
WiFi
WiFi
GKSession
GKSessionDelegate
GKSession
init
– 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
模式下都可以正常工作。