首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GameKit:当使用没有GKPeerPickerController的GKSession时,连接类型是什么?

GameKit:当使用没有GKPeerPickerController的GKSession时,连接类型是什么?
EN

Stack Overflow用户
提问于 2010-01-18 16:34:09
回答 1查看 2.7K关注 0票数 5

我正在实现一个基于BlueToothWifiiPhone聊天程序。为了连接目的,我使用GameKit。但是由于一些特殊的需求应用程序,我不能使用默认的GKPeerPickerController。因此,我创建了一个GKSessionGKSessionDelegate组合来检测对等点。他们找到对方后,就可以聊天了。

现在,我已经在三个mac-minis上使用simulator、一个模拟器和一个iPod、一个iPhone和一个Simulator测试了聊天功能。我可以在上述所有场景中聊天。但是一些iPhoneiPod是不会互相察觉的。

另外,我对所有这些设备之间正在发生的连接类型感到好奇。因为理论上GameKit同时支持BlueToothWiFi。现在的问题是,GKPeerPickerController让我们在BlueToothWiFi之间做出具体选择(不幸的是,WiFi的实现在任何地方都没有文档记录)。这很好,但是当您实现自己的GKSessionGKSessionDelegate Combo时,定制场景又如何呢?当您使用唯一可用的GKSession方法创建init对象时:

代码语言:javascript
复制
– initWithSessionID:displayName:sessionMode:

只有配置选项是sessionMode,但它只有三个选项

代码语言:javascript
复制
   GKSessionModeServer,
   GKSessionModeClient,
   GKSessionModePeer,

所有这些都没有指示BluetoothWiFi之间的连接选择。

但是我已经在bluetooth上禁用了iPod,并且用mac-mini测试了它,所以我想这是在使用WiFi。同样在日志中,我得到了以下一行:

代码语言:javascript
复制
DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.

DNSServiceRegisterudp部分让我认为通信是在TCP/IP上进行的。

因此,这是否意味着当我从GKSessionGKSessionDelegate开始时,默认的通信方法仅是WiFi,还是同时支持WiFibluetooth (尽管我从未得到一个BlueTooth连接正在发生的指示)。

但是GameKit应该主要是关于BlueTooth的,对吧?有人能说明到底发生了什么事吗?

您有没有见过有人为WiFi实现GKPeerPickerController接口的示例代码?

解决:

好吧我自己找到的。正如我在问题中提到的那样,GKSessionGKSessionDelegate自定义实现对bluetoothWiFi都有效。实际上,我使用的iPhone (JailBroked)BlueTooth有一些问题,这可能妨碍了Gamekit正常工作,在艰难地重新设置手机并关闭Airplane模式之后,bluetooth关闭了几次,bluetooth在手机上工作了几次。现在,该应用程序在WiFiBlueTooth模式下都运行良好。

EN

回答 1

Stack Overflow用户

发布于 2010-08-02 15:06:01

你知道GKPeerPicker是否有类似的行为吗?我的意思是,如果选择接近模式允许您通过wifi/蓝牙连接?

我怀疑INTERNET模式是使用TCP/IP连接到远程服务器。问候

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2087556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档