我实施BlueTooth
和Wifi
基于聊天程序iPhone
.出于连接目的,我正在使用GameKit
.但由于一些特殊要求的应用,我无法使用默认值GKPeerPickerController
.所以我改为创建了一个GKSession
和GKSessionDelegate
组合来检测对等体.他们找到对方后,可以聊天.
现在我已经测试了三个mac-minis
使用的聊天功能simulator
,一个模拟器和一个iPod
,一个iPhone
和一个Simulator
.我可以在上述所有场景中聊天.但是一些如何相互检测iPhone
并且iPod
不会相互发现.
此外,我很好奇所有这些设备之间的连接类型.因为理论上GameKit
支持两者,BlueTooth
和WiFi
.现在的问题是,GKPeerPickerController
咱们之间的一个专门选择BlueTooth
和WiFi
,(可惜的执行WiFi
不记录任何地方).这是好的,但对于自定义场景时,一个实现自己GKSession
和GKSessionDelegate
组合.当GKSession
使用唯一init
可用的方法创建Object时:
– 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
并bluetooth
在同一时间两个(虽然我从来没有一个单一的指示BlueTooth
连接发生了什么).
但是GameKit
应该主要是关于BlueTooth
对吗?任何人都可以了解一下究竟发生了什么?
您还看过任何有人为其实现WiFi接口的示例代码 GKPeerPickerController
吗?
解决了:
好的,我自己找到了.GKSession
和GKSessionDelegate
自定义实现,因为我在这个问题提到同时适用于bluetooth
和WiFi
.实际上,iPhone (JailBroked)
我正在使用的有一些问题,BlueTooth
可能是因为无法Gamekit
正常工作,在硬重置手机并关闭Airplane
模式后,bluetooth
开机几次关闭了bluetooth
电话.现在,应用程序在两个工作的罚款WiFi
和BlueTooth
模式.