- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 iPhone
实现一个基于 蓝牙
和 Wifi
的聊天程序。出于连接目的,我使用 GameKit。但由于一些特殊要求的应用程序,我无法使用默认的GKPeerPickerController
。因此,我创建了一个 GKSession 和 GKSessionDelegate 组合来检测对等点。找到对方后,他们就可以聊天了。
现在我已经使用模拟器
在三台mac-minis
、一台模拟器和一台iPod
、一台iPhone上测试了聊天功能
和一个模拟器
。我可以在上述所有场景中聊天。但 iPhone
和 iPod
无法检测到对方的原因有一些。
我也很好奇所有这些设备之间发生的连接类型。因为理论上 GameKit
同时支持 蓝牙
和 WiFi
。现在的问题是,GKPeerPickerController 让我们在蓝牙和 WiFi 之间进行选择(不幸的是 WiFi 的实现是没有在任何地方记录。)这很好,但是当一个人实现自己的 GKSession
和 GKSessionDelegate
组合时,自定义场景又如何呢?当使用唯一可用的 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.
DNSServiceRegister
和 udp
部分让我认为通信是通过 TCP/IP
进行的。
这是否意味着当我开始使用 GKSession
和 GKSessionDelegate
时,默认的通信方法仅是 WiFi,还是支持 WiFi
和蓝牙同时进行(尽管我从未收到任何表明蓝牙连接正在发生的指示)。
但是 GameKit
应该主要是关于 蓝牙
对吗?有人能解释一下到底发生了什么吗?
您还见过有人为 GKPeerPickerController
实现 WiFi 接口(interface)的示例代码吗?
已解决:
好的,我自己找到的。正如我在问题中提到的,GKSession
和 GKSessionDelegate
自定义实现适用于 蓝牙
和 WiFi
。实际上,我使用的 iPhone (JailBroked)
与 蓝牙
存在一些问题,可能在硬重置手机后导致 Gamekit
无法正常工作并关闭飞行
模式,打开蓝牙
几次,使蓝牙
在手机上正常工作。现在,该应用在 WiFi
和 BlueTooth
模式下都能正常工作。
最佳答案
你知道 GKPeerPicker 是否有类似的行为吗?我的意思是选择 NEAR 模式是否允许您通过 wifi/蓝牙进行连接?
我怀疑 INTERNET 模式是用于使用 TCP/IP 连接到远程服务器。问候
关于iphone - GameKit:在没有 GKPeerPickerController 的情况下使用 GKSession 时的连接类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087556/
如果我有两个 iOS 设备,都在同一个 WiFi 网络上并且都打开了蓝牙,并且我使用 GameKit(特别是 GKSession)手动设置它们之间的通信 channel (不使用 GKPeerPick
我希望 session 中的一个对等方将字符串数组发送给另一个已连接的对等方。有没有一种方法可以将这样的数组转换为NSData或我需要一个接一个地发送字符串? 非常感谢。 最佳答案 NSArray对象
我在 GameKit 上工作了一段时间。几乎一切正常。我对 session:peer:didChangeState: 有一个大问题恢复后未调用方法。 在 Apple 示例 GKRocket 中,如果应
我阅读了技术说明 TN2277当应用程序进入后台时,关闭各种网络套接字非常重要。这很可能还包括 GKSession。 他们说进入后台时需要一个过期处理程序,并且如果必须异步调用网络代码(如果必须向其他
我有许多使用 GameKit 通过 wifi 连接的设备。当对等方(客户端)接收数据时,我会弹出一个简单的 UIAlertView 。除了发送者(服务器)之外的所有其他人在发送数据时都会显示此警报 V
我当前的sessionMode是GKSessionModeServer。如果我在客户端,我会执行以下操作: [mySession sendDataToAllPeers:packet withDat
大家好,我正在使用以下代码来识别蓝牙上的可用设备。 _session = [[GKSession alloc]initWithSessionID:sessionid displayName:sessi
我们可以使用 GKSession 和 GKPeerPickerController 仅通过蓝牙连接 iPodtouch 或 iPhone,对吗? ,或者我们可以连接其他蓝牙设备吗? 最佳答案 使用 G
我想使用 GKSession 连接两台设备,其中一台作为服务器,另一台作为客户端。使用此配置我无法使用 GKPeerPickerController。 我在连接两个设备时遇到问题: 仅使用蓝牙:不可能
为了读取对等方的新显示名称,我需要终止并更新GKSession。将其设置为nil并重新启动它不起作用。在下面的代码中,未调用for循环中的NSLog来显示可用的对等节点(没有错误消息): -(IBAc
我在通过 GKSession 发送整数数组时遇到问题。 我是这样做的: 发送。 -(void)sendData { NSMutableArray *myArray = [[NSMutableA
我有一个典型的 GKSessionModeServer/GKSessionModeClient 设置。 当服务器使用 denyConnectionFromPeer: 拒绝客户端连接尝试时,客户端的 s
我可以同时实现两个GKSession,一个作为客户端,另一个作为服务器吗?使用 WiFi 和蓝牙实现此连接是否存在问题或任何限制?谢谢! 最佳答案 您可以使用 GKSessionModePeer 来执
GKPeerPickerController 是否会显示蓝牙设备的对等 ID,该设备属于暂停模式下的某个特定应用程序的一部分 场景 我有一个具有特定 session ID 的 iOS 蓝牙应用程序 X
我在两个应用程序之间有一个 GKSession。一个是服务器,另一个是客户端。服务器使客户端应用程序使用 urlscheme 命令启动另一个应用程序。 我希望发生的是,当客户端应用程序关闭时, ses
我制作了一个简单的游戏,它使用 GameKit 中的 GKSession 连接到其他点。设置起来很容易,但我发现了一些问题: 延迟变化很大。有时消息会立即到达其他设备。有时,向其他对等方发送数据的延迟
如何在GKSession开始搜索时停止下面的代码? BTM: posting notification BluetoothAvailabilityChangedNotification 2011-0
我有一个应用程序,如果用户选择设备作为服务器,它会在服务器模式下创建一个 GKSession,如果它选择 cient,它会在客户端模式下创建一个 GKSession。 目前发生的事情是服务器正在发送数
我正在开发一个 iOS 应用程序,该应用程序允许用户在本地与其他设备共享 PDF。当应用程序启动时,设备主动成为搜索正在广播文件的服务器的客户端。当客户端看到服务器时,它会在其选项卡中添加一个角标(B
我知道系统可以在应用程序挂起时关闭 Bonjour 套接字。但是,当我的应用程序在后台运行时,系统会允许我只发现其他设备而不为它们创建套接字,并可能将这些设备存储在列表或类似的东西中吗? 最佳答案 使
我是一名优秀的程序员,十分优秀!