这个问题让我很困惑。我在我的应用程序的主机-客户端分支配置中使用GKSessionoverWiFi。但出于某种原因,每当路由器轮换其安全key时,所有设备都会彼此断开连接。我已经反复测试并验证了session仍然有效,但设备仍然断开连接。有没有人遇到过这个问题?你做了什么来解决它?有什么想法吗? 最佳答案 我一直无法弄清楚为什么会这样,但我确实找到了解决这个问题的方法。我在我的应用程序中添加了一些代码,这样当它由于用户故意断开连接以外的原因断开连接时,它会自动尝试重新连接。到目前为止,这已经解决了我的问题。
有人指出Bonjour更可靠。Bonjour只是WiFi,不支持蓝牙,不是吗?肯定有GKSession的替代品,它将Bonjour和蓝牙的所有优点结合在一个简单易用的API中,但我找不到它。我需要为玩家可以随时加入的游戏自动连接最多8台设备,而GKSession似乎对PeerToPeer的总限制为3。 最佳答案 我相信,从iOS6开始,GKSession将允许最多16台设备。它当然应该至少适用于8个设备,因为蓝牙支持8个设备。我已经成功连接了6台设备,没有问题。 关于iphone-是否有
我在让GKSession工作时遇到问题。下面是我在按下特定按钮时执行的代码。GKSession*session;if(connectButtonHasBeenPressed==false){NSLog(@"connectToBluetoothDevicehasbeencalled");connectButtonHasBeenPressed=true;GKSession*session=[[GKSessionalloc]initWithSessionID:@"Unicorn"displayName:nilsessionMode:GKSessionModePeer];[sessionset
如果我在我的两个ios设备上多次连接和断开蓝牙,我会得到重复的对等名。有没有办法在gkpeerpickercontroller中为蓝牙聊天应用程序获取唯一对等点的单一名称。同时附上截图。我使用下面的代码来显示GKPeerPickerController。-(IBAction)btnConnectClicked:(id)sender{[selfopenPeerPickerController];}-(IBAction)btnDisconnectClicked:(id)sender{[currentSessiondisconnectFromAllPeers];}-(void)openPee
我制作了一个简单的游戏,它使用GameKit中的GKSession连接到其他点。设置起来很容易,但我发现了一些问题:延迟变化很大。有时消息会立即到达其他设备。有时,向其他对等方发送数据的延迟>1秒。数据只是一个包含10个字符的字符串。我的游戏依赖于精确的时钟同步。游戏会播放音乐,但在所有连接的设备上不同时开始播放时听起来很奇怪。我在文档中找不到任何关于如何同步计时的内容。问题在于启动游戏的“主”码头立即开始播放音乐,然后所有其他码头稍后收到消息并因此延迟后开始播放。然后我尝试在向所有码头发送开始消息后延迟播放游戏音乐,但有时延迟或高或低,我无法获得可靠的同步。是否有开源框架使点对点和时
我的应用程序使用GKSession和GKSessionModePeer。它必须处理任意连接和断开连接的点,因为这是一个长时间运行的应用程序,用户应该能够进入后台并稍后返回。这在大多数情况下都很好用。但有时,当对等点断开连接时,其他设备会收到didChangeState:GKPeerStateDisconnected通知,不仅是真正断开连接的设备,还有其他实际上仍处于连接状态的设备。我可以使用下面的代码和4台设备(全部在iOS5上)重现此行为。当一切按预期进行时,当设备A退出应用程序时,所有其他设备都会收到通知,并且这些设备上的日志输出为:服务:didChangeState:peerA断
我尝试了一个应用程序来测试蓝牙通信。这是一个简单的应用程序,只是将文本形式的消息从一个iDevice发送到另一个iDevice。最初,这个应用程序有大约6个警告,但我修复了除两个之外的所有警告。它们是相同的,但处理不同的代表。一个用于GKPeerPickerControllerDelegate,另一个用于GKSessionDelegate。假设Picker错误是针对名为picker的GKPeerPickerController,当您键入时(后面有更完整的示例):picker.delegate=self;编译器说:Passing'*const___strong'toparameterof
我的应用程序中有此歌曲播放列表。我想使用蓝牙在另一台设备(iphone)上播放此播放列表中的歌曲。这就是我这样做的目的#import"BrowseStationsViewController.h"@interfaceBrowseStationsViewController(){GKSession*gkSession;}@end@implementationBrowseStationsViewController-(id)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNil{self=[superi
好吧,这涉及到来自thispartofamultiplayertutorial的大量网络编码.基本上,我正在尝试按照上面链接的教程使用GameKit实现多人游戏。我输入了所有必要的网络编码并且或多或少地理解了它,但是我在方法调用的某个地方遇到了障碍。基本上,我的设置是一台设备充当主机,其余设备充当客户端。我有两个单独的UIViewcontroller,分别用于建立连接的主机和客户端。现在的问题是,连接已建立,但只有主机可以识别连接,客户端无法识别。问题出在这里:-(void)sendPacketToAllClients:(Packet*)packet{[_playersenumerat
好吧,这涉及到来自thispartofamultiplayertutorial的大量网络编码.基本上,我正在尝试按照上面链接的教程使用GameKit实现多人游戏。我输入了所有必要的网络编码并且或多或少地理解了它,但是我在方法调用的某个地方遇到了障碍。基本上,我的设置是一台设备充当主机,其余设备充当客户端。我有两个单独的UIViewcontroller,分别用于建立连接的主机和客户端。现在的问题是,连接已建立,但只有主机可以识别连接,客户端无法识别。问题出在这里:-(void)sendPacketToAllClients:(Packet*)packet{[_playersenumerat