问题标签 [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 回答
666 浏览

ios - GKSession - 在应用程序之间切换并维护会话

我在两个应用程序之间有一个 GKSession。一个是服务器,另一个是客户端。服务器使客户端应用程序使用 urlscheme 命令启动另一个应用程序。

我希望发生的是,当客户端应用程序关闭时,会话结束,另一个应用程序打开,我们开始一个新的会话。

实际发生的事情对我来说有点神秘。基本上,新应用程序打开并开始与服务器通信。大量数据包在两者之间来回发送......但在短时间内(3-5 秒)后,GKPeerStateDisconnected 情况发生在 session:peer:didChangeState: 与之前连接的应用程序中。这将停止应用程序之间的所有通信。

我最初为此使用了对等选择器,它工作得很好(除了你需要按下很多手动按钮)。现在我需要删除对等选择器并让这个过程自动发生。

0 投票
1 回答
493 浏览

ios - iOS GKSession 语音聊天卡顿

我使用 GameKit 连接作为基础向我的 iOS 应用程序添加了语音聊天,传输延迟(通过蓝牙)似乎约为 4 秒,这意味着 8 秒才能收到问题的回复。

虽然我不完全确定是什么导致了如此大的延迟,但我有几个嫌疑人。

首先,我注意到它使用了一种voiceChatService:sendData:toParticipantID:来自GKVoiceChatClientwhile的方法voiceChatService:sendRealTimeData:toParticipantID:RealTimeData然而,即使我实现了它,我也没有看到任何明显的方法可以让它使用该方法的版本。我该怎么做?它可能会有所帮助吗?

此外,我将数据模式更改GKSendDataUnreliableGKSendDataReliable有时我会听到两次相同的声音,因为应用程序可能会重新发送未确认的位。这消除了类似回声的效果,但没有改善滞后。

我还能做些什么来提高实时性能?

0 投票
1 回答
159 浏览

ios - 如何终止与特定 peerID 的连接?

GKSession在 PEERMODE 中使用与不同设备建立多个连接。

但我无法弄清楚如何终止具有特定 peerID 的特定连接,如下所示:

我已经阅读了GKSessionClass 的参考并在网上进行了一些搜索,但没有找到任何有用的信息,有人可以帮助我吗?

0 投票
0 回答
374 浏览

iphone - GameKit WiFi 可以在模拟器上运行,但不能在设备上运行

在使用 GameKit 时,我遇到了一个无法解释的问题。通过 WiFi ( picker.connectionTypesMask = GKPeerPickerConnectionTypeOnline;) 建立连接时,设备无法互相看到。当模拟器看到一切时,他们什么也看不到,它可以看到任何设备或模拟器在不同的机器上工作。几天来,我一直在努力研究它,我已经试图理解为什么它可以在模拟器上运行,但不能在设备上运行。谁能帮帮我吗?

这就是我创建会话的方式

0 投票
1 回答
1429 浏览

iphone - 为什么 GKSession 在设备上运行时总是尝试使用蓝牙而不是在模拟器上?

我正在尝试在不使用 GKPeerPickerController 的情况下实现 GameKit 连接。我需要的是建立 WiFi 连接,而不是蓝牙。

我就是这样做的

我的问题是设备总是尝试通过蓝牙连接。至少我是这么认为的,因为控制台中总是出现以下内容

BTM:附加到 BTServer

即使我关闭蓝牙,它总是会尝试处理蓝牙,而不是 wifi。此外 - 如果蓝牙打开 - 如果我不使用 GKPeerPickerController,设备永远不会互相看到。此外,模拟器从不尝试寻找蓝牙,并且始终能够建立 wifi 连接并轻松找到任何设备。我如何让 GKSession 选择 WiFi 连接?

0 投票
1 回答
481 浏览

xcode - iOS 游戏套件、纸牌游戏玩家和 GKVoiceChatService

我正在为 iOS 开发一款纸牌游戏。我认为游戏中心集成是我想要的东西,但就纸牌游戏而言,我不确定这对个人玩家来说意味着什么。从 Apple 类的参考资料来看,这似乎GKPlayer是我想要使用的,但我也有自己的玩家类,我认为我需要它来处理牌手。我想知道我的 Player 类中是否应该有一个GKPlayer对象,或者这是否是错误的处理方式。

我也想知道游戏中心的语音聊天(我知道这听起来与纸牌游戏完全无关,但请耐心等待)。我还没有看到它实现,所以我不完全确定它是如何工作的。基本上我需要的是它能够连接 4-10 名玩家,并且只是一种语音聊天之类的东西。这似乎是需要在屏幕上显示一些我想避免的东西。那将如何运作?

0 投票
1 回答
2297 浏览

iphone - NSString 转换为 NSMutableData 而不转换为 NSData

我的问题如下。我想将 NSString 封装在 NSMutableData 对象中。但我想与其他项目一起做,而不是先将它封装到 NSData 中。毕竟只是字节不是吗?

我最终的 NSMutableData 对象看起来像

whereheader是一个 char 并且stringLength是一个 unsigned short。我像这样构建我的数据包

然后我会通过 gkSession 发送它,在另一端我会提取 sting 长度,然后是字符串本身:

由于某些原因,这给了我糟糕的内存访问。我怀疑这myString.length并没有完全符合我的预期。你有什么提示吗?提前致谢。

0 投票
1 回答
296 浏览

ios - 如何将多个信息打包到 NSData 并发送/接收/处理数据?

我正在 iOS 上制作一款小型纸牌游戏。我正在使用 GameKit/GKsession 来处理我的网络数据传输。

我的问题是如何将多个信息“打包”到 NSData 并发送。当服务器接收到 NSData 时,如何解包并以正确的方式处理信息。

例如,我可以毫无问题地发送和接收 NSString。但是我的游戏有不同的数据类型需要发送和接收,例如 UIImage/NSString/NSArray/...

我在 SDK 中找到了示例项目 GKTank。但这对我来说真的很难理解。在我的猜测中,它定义了几种数据类型。

有人可以告诉我如何让服务器知道客户端正在发送什么样的数据(NSString?UIImage?)在这个方法中:

0 投票
1 回答
175 浏览

ios - GKSession:发送字符串数组

我希望会话中的一个对等方将一组字符串发送到另一个连接的对等方。有没有办法将这样的数组转换为 NSData 或者我需要一个接一个地发送字符串?非常感谢。

0 投票
1 回答
3031 浏览

ios - 如何在不使用 GKPeerPicker 的情况下通过 GKSession 在手机之间传输数据

我正在尝试创建一个使用 GKSession 在两部以上手机之间传输数据的应用程序。事情是有两种选择:

第一:使用GKPeerPicker .. 但是在这里我被困在我必须实现自己的WIFI 接口的地方.. 苹果没有提供如何做到这一点的说明:

第二:跳过 GKPeerPicker 并自己做整个事情,就像在这个例子中一样。但是,应用程序开发文档没有提供有关如何在不使用 GKPeerPicker 的情况下发送/接收数据的任何说明。(我也无法在网络上找到任何示例)