问题标签 [gksession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6055 浏览

ios - GKSession 在 ios 7 中已弃用,我现在应该使用什么?

我有一些使用游戏工具包在设备之间传输文件的应用程序,但在 ios 7 游戏工具包中无法正常工作。我想知道我现在应该使用什么。

0 投票
1 回答
100 浏览

iphone - Gamekit No Network 错误仅在 LTE 网络上

我使用 GameKit 构建了一个多人纸牌游戏,除非用户在 LTE 网络上,否则一切正常。如果是,我会得到一个 didFailWithError No Network。Wifi,4g,3g,其他一切都很完美。

是否有未检测到 LTE 网络的原因或使其正常工作的方法?

0 投票
0 回答
563 浏览

ios - 我一次可以通过蓝牙发送多少字节数据?

我正在使用 GKPeerPickerController 和 GKSession 类,我正在尝试发送相当大量的数据(大约 20 mb,图像)。问题是当我发送更多,比如 10 兆字节时,接收器 ( - (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context;) 的适当委托方法根本不会被调用。有一些尺寸限制吗?没有完成处理程序或返回错误。数据被发送到无处...我还有另一个问题 - 是否可以通知发件人收到数据?(这样我就可以发送排队的包裹)。提前致谢!

添加 此方法形成一个字典,其中包含我要发送的对象

这是我的sendData方法:

该方法- (BOOL)sendDataToAllPeers:(NSData *)data withDataMode:(GKSendDataMode)mode error:(NSError **)error返回YES没有错误(它是零)。我究竟做错了什么?

添加

有时虽然 sendData 仍然返回 NO 而没有任何错误,但数据会成功接收。处理错误的委托方法都没有被调用。

0 投票
0 回答
97 浏览

ios - GKSession receiveData: fromPeer: inSession: context: delay in receiving data

I have created a timer app which used to run timer on multiple device if timer is stop on one device it has to reflect on the other device as well, i am using this delegate

to get the value from the other device, its working fine except in some case its getting delay to receive the value and the timer value is different on different device.

Can any body help me out to make it exact time on both/multiple device without any delay.

0 投票
0 回答
466 浏览

ios - 如何在 ios 中使用 GKPeerPickerController 删除蓝牙连接中的重复设备

我想使用 GKPeerPickerController 通过蓝牙连接两个 ios 设备。第一次连接很好,后来出现连接不上的问题。

在设备附近搜索时,GKPeerPickerController 警报中列出了重复的设备。请帮我。

我正在使用以下代码通过蓝牙搜索附近的设备。

0 投票
3 回答
212 浏览

swift - swift 中receiveData:fromPeer:inSession:context: 的正确签名是什么?

我试图用 swift 重写我的 GameKit 多人游戏(本地),并且遇到了一些缺少该语言文档的问题。我想从另一个对等方接收数据,所以我为我的 GKSession 设置了 dataReceiveHandler,如下所示:

在苹果文档中,它说 dataReceiveHandler 必须实现具有此签名的方法:

在objective-c文档中是一个签名应该是什么样子的例子:

如果我尝试快速重写此方法,它看起来像这样:

当我收到一条消息时给我这个错误:

Domain=com.apple.gamekit.GKSessionErrorDomain Code=30500 "Invalid parameter for -setDataReceiveHandler:withContext:" UserInfo=0x178462840 {NSLocalizedDescription=Invalid parameter for -setDataReceiveHandler:withContext:, NSLocalizedFailureReason=处理程序没有响应正确的选择器。}

这意味着我的方法没有正确的签名。但是什么是正确的?

0 投票
1 回答
177 浏览

ios - GKPeerPicker 控制器中出现重复的对等名称

如果我在两个 ios 设备中多次连接和断开蓝牙,我会得到重复的 peername。

有没有办法在 gkpeerpickercontroller 中为蓝牙聊天应用程序获取唯一对等点的单一名称。

还附上了它的屏幕截图。 出现多个重复对等体

我正在使用下面的代码来显示 GKPeerPickerController。


0 投票
0 回答
238 浏览

ios - 蓝牙多人游戏延迟问题

我正在为 iPhone 和 iPad 开发一款 3D 蓝牙多人游戏,而不使用任何游戏引擎。我正在使用 GKSession 类使用对等模式通过蓝牙在设备之间发送数据。如果我继续玩游戏一段时间没有性能下降问题,但是当我断开连接(即使没有退出游戏)并通过蓝牙游戏模式重新连接游戏时,我将面临性能下降(游戏延迟)问题.

我尝试分析我的代码(当游戏延迟时),发现数据包需要更多时间(大约 10 毫秒)才能传输到另一个设备,而当游戏运行时没有延迟时通常需要 2 毫秒。

我有三个问题:

  1. 我假设数据传输时间的增加可能是导致延迟问题的原因。如果是,如何解决此类问题?

  2. 我正在分别在 iOS 7 和 8 上运行的 iPad 和 iPhone 上测试我的游戏。由于 iOS 7 已弃用 GKSession,这会影响游戏性能吗?

  3. 代码的其他部分是否会导致此类性能问题?

我将不胜感激有关此问题的任何建议。先感谢您。

代码片段:

断开两个设备的代码

  1. 创建会话的代码

    (GKSession *) peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {

    }

  2. 头文件中会话的定义

    @property (nonatomic, 保留) GKSession *session;