问题标签 [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 投票
0 回答
273 浏览

iphone - 当一台设备通过gamekit接受另一台设备的连接请求时,在两台设备上发送和接收数据

我在我的项目中使用 gamekit 框架来连接两个或多个设备。我想问一个设备何时选择另一个设备,比如设备 A 和 B,当 A 选择 B 时,B 会出现一个关于接受或拒绝连接的对话框。现在 B 接受,我要做的是我必须向两者发送数据设备,从 B 到 A,从 A 到 B。

为此,我所做的是:-

问题是当我使用一台 iPad 和另一台 iPhone 时,在这种情况下,该方法在设备 A 上被调用,但在设备 B 上得到对话框并按下接受按钮,该方法不会被调用。

如果我同时使用 iPad,那么在这种情况下它工作正常。

请帮助我,因为我被困在这里。任何帮助将不胜感激!

0 投票
1 回答
869 浏览

ios - iPhone peer 2 peer Connection .. 有没有办法连接到多个设备?

我正在尝试实现对等连接应用程序。所以我想将超过 2 个设备相互连接。如何为每对设备创建单独的会话是否可以使用新的 GameKit 框架连接到超过 1 个设备?

0 投票
0 回答
203 浏览

iphone - 如何通过本地 wifi 广播文件(.mp3)?并在两个设备都有文件时同步播放?

我知道我的问题很大。但如果有人建议我应该去哪个方向。我知道我们可以通过 gameKit(GKsession/GKPeerPickerController) 实现这一点,但我也无法真正理解这两者的工作原理,我如何在接收数据后同步它们的播放。

非常感谢大家的帮助

0 投票
2 回答
1432 浏览

iphone - GKSession 对等断开导致其他对等出现断开连接

我的应用程序使用 GKSession 和 GKSessionModePeer。它必须处理任意连接和断开的对等点,因为这是一个长时间运行的应用程序,用户应该能够进入后台并稍后再回来。这在大多数情况下都可以正常工作。但有时,当对等点断开连接时,其他设备会收到 didChangeState:GKPeerStateDisconnected 通知,不仅对于真正断开连接的设备,而且对于实际仍然连接的其他设备。

我可以使用下面的代码和 4 台设备(全部在 iOS 5 上)重现此行为。当一切按预期进行时,当设备 A 退出应用程序时,所有其他设备都会收到通知,并且这些设备上的日志输出为:

Service: didChangeState: peer A disconnected (12345)

但是一段时间后,当一个设备断开连接时(再说一次 A),其他设备会为没有断开连接的设备获得额外的回调。例如,设备 C 将获得:

Service: didChangeState: peer A disconnected (...) // expected

Service: didChangeState: peer B disconnected (...) // never disconnected

大约在同一时间,我有时会在断开设备的日志中看到这些消息,不清楚它们是否真的相关:

dnssd_clientstub DNSServiceRefDeallocate called with NULL DNSServiceRef

和/或

dnssd_clientstub DNSServiceProcessResult called with DNSServiceRef with no ProcessReply function

一旦发生这种情况,GKSession 似乎处于不良状态,不再正确处理连接和断开连接。为了恢复良好状态,我必须在所有设备上硬杀应用程序,稍等片刻,然后重新开始。

在进入后台时,我尝试了不同的处理 GKSession 的方法(仅设置 available=NO 并且不断开连接,根本不做任何事情),但没有一个效果更好。

有没有其他人遇到过这种行为(并解决了它)?

AppDelegate 中的简单复制案例(使用 arc):

0 投票
1 回答
914 浏览

ios - Gamekit 延迟

我对 GKSessions 有以下问题: 在客户端/服务器应用程序中发送数据时有时会有很大的延迟(3-4 秒有时长达 10 秒)。

如果服务器在延迟期间发送了 10 个数据包,那么这 10 个数据包会在客户端一次全部接收。奇怪的是,服务器在延迟期间仍然接收来自客户端的数据包。

这种延迟在 WiFi 网络中似乎更糟,但也发生在蓝牙网络中。

有没有其他人在使用 gamekit 时遇到过这样的延迟峰值?这个问题的根源可能是什么?

0 投票
2 回答
543 浏览

objective-c - 一些恼人的警告仍然让应用程序工作但想删除

我尝试了一个应用程序来测试蓝牙通信。这是一个简单的应用程序,只需将文本形式的消息从一个 iDevice 发送到另一个 iDevice。最初,这个应用程序有大约 6 个警告,但我修复了除两个之外的所有警告。它们是相同的,但处理不同的代表。一个用于 GKPeerPickerControllerDelegate,另一个用于 GKSessionDelegate。假设 Picker 错误是针对名为 picker 的 GKPeerPickerController,当您键入时(后面有更完整的示例):

编译器说:

将“*const___strong”传递给不兼容类型“id”的参数。

对于 GKSession 命名会话,键入

让编译器说:

将 '*const___strong' 发送到不兼容类型 'id' 的参数。

这些仅弹出按钮发送和 peerPickerController。我知道这些警告不会妨碍应用程序的运行能力,但我想为 Xcode 4.2 完全更新它。这个应用程序最初是为 Xcode 编写的,当时 iOS 3.0 还是新的。是的,在编写或练习代码时我有点挑剔,它必须尽可能不包含任何错误/警告。

这些是出现警告的代码块:

编辑:

标题有这个:

}

0 投票
1 回答
1548 浏览

ios - 如何使用 GKSession 实现 Master-Client 模型?

我现在正在与 GKSession 合作。我想将 2 台以上的 iPad 相互连接。

我可以使用蓝牙 GKSession PeerPickerController 连接其中两个。我对这些东西很陌生。

任何人都可以给我一些指向或链接到实现这种模型的教程吗?

0 投票
2 回答
1928 浏览

ios - GKSession模式peer:如何在没有任何按钮/确认的情况下自动连接两个peer?

我想在没有 GKPeerPickerController 且不按下任何“连接按钮”的情况下在 2 部 iPhone 之间建立蓝牙连接。

我正在使用以下代码:

当应用程序在双方都启动时,在双方 都调用- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state,状态为“GKPeerStateAvailable”。

对于“经典”应用程序,两侧都会显示一个弹出窗口以请求连接,并且大多数情况下,两个“用户”不会同时单击连接按钮。

如果我想要一个“自动连接”,我需要一种机制来仅在一侧启动会话,因为如果没有这种机制,将启动两个会话并发生错误。

任何想法/帮助?

0 投票
1 回答
1231 浏览

ios - GKSession - kill and renew session

In order to read a new display name of a peer I need to kill and renew the GKSession. Setting it to nil and initiate it anew does not work. In the code below, the NSLog in the for-loop to show the available peers is not called (there's no error message):

What is wrong with setting the currentSession to nil and initiate it anew? Maybe you know of another way to renew a GKSession? Thanks very much in advance.

0 投票
2 回答
320 浏览

ios - 使用 GKSession 作为客户端和服务器

我可以实现两个 GKSession,一个作为客户端,另一个作为服务器吗?使用 WiFi 和蓝牙实现此连接是否存在问题或任何限制?谢谢!