gpt4 book ai didi

iphone - GameKit:在没有 GKPeerPickerController 的情况下使用 GKSession 时的连接类型是什么

转载 作者:行者123 更新时间:2023-12-03 19:01:39 26 4
gpt4 key购买 nike

我正在为 iPhone 实现一个基于 蓝牙Wifi 的聊天程序。出于连接目的,我使用 GameKit。但由于一些特殊要求的应用程序,我无法使用默认的GKPeerPickerController。因此,我创建了一个 GKSession 和 GKSessionDelegate 组合来检测对等点。找到对方后,他们就可以聊天了。

现在我已经使用模拟器在三台mac-minis、一台模拟器和一台iPod、一台iPhone上测试了聊天功能 和一个模拟器。我可以在上述所有场景中聊天。但 iPhoneiPod 无法检测到对方的原因有一些。

我也很好奇所有这些设备之间发生的连接类型。因为理论上 GameKit 同时支持 蓝牙WiFi。现在的问题是,GKPeerPickerController 让我们在蓝牙和 WiFi 之间进行选择(不幸的是 WiFi 的实现是没有在任何地方记录。)这很好,但是当一个人实现自己的 GKSessionGKSessionDelegate 组合时,自定义场景又如何呢?当使用唯一可用的 init 方法创建 GKSession 对象时:

– initWithSessionID:displayName:sessionMode:

它提供的唯一配置选项是sessionMode,但它只有三个选项

   GKSessionModeServer,
GKSessionModeClient,
GKSessionModePeer,

其中没有一个表示在蓝牙WiFi之间进行连接选择。

但是我在 iPod 上禁用了蓝牙,并使用 mac-mini 对其进行了测试,它可以工作,所以我猜这是使用 无线网络。另外,在日志中我得到以下行:

DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.

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

这是否意味着当我开始使用 GKSessionGKSessionDelegate 时,默认的通信方法仅是 WiFi,还是支持 WiFi和蓝牙同时进行(尽管我从未收到任何表明蓝牙连接正在发生的指示)。

但是 GameKit 应该主要是关于 蓝牙 对吗?有人能解释一下到底发生了什么吗?

您还见过有人为 GKPeerPickerController 实现 WiFi 接口(interface)的示例代码吗?

<小时/>

已解决:

好的,我自己找到的。正如我在问题中提到的,GKSessionGKSessionDelegate 自定义实现适用于 蓝牙WiFi。实际上,我使用的 iPhone (JailBroked)蓝牙 存在一些问题,可能在硬重置手机后导致 Gamekit 无法正常工作并关闭飞行模式,打开蓝牙几次,使蓝牙在手机上正常工作。现在,该应用在 WiFiBlueTooth 模式下都能正常工作。

最佳答案

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

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

关于iphone - GameKit:在没有 GKPeerPickerController 的情况下使用 GKSession 时的连接类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com