问题标签 [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.
iphone - 当一台设备通过gamekit接受另一台设备的连接请求时,在两台设备上发送和接收数据
我在我的项目中使用 gamekit 框架来连接两个或多个设备。我想问一个设备何时选择另一个设备,比如设备 A 和 B,当 A 选择 B 时,B 会出现一个关于接受或拒绝连接的对话框。现在 B 接受,我要做的是我必须向两者发送数据设备,从 B 到 A,从 A 到 B。
为此,我所做的是:-
问题是当我使用一台 iPad 和另一台 iPhone 时,在这种情况下,该方法在设备 A 上被调用,但在设备 B 上得到对话框并按下接受按钮,该方法不会被调用。
如果我同时使用 iPad,那么在这种情况下它工作正常。
请帮助我,因为我被困在这里。任何帮助将不胜感激!
ios - iPhone peer 2 peer Connection .. 有没有办法连接到多个设备?
我正在尝试实现对等连接应用程序。所以我想将超过 2 个设备相互连接。如何为每对设备创建单独的会话是否可以使用新的 GameKit 框架连接到超过 1 个设备?
iphone - 如何通过本地 wifi 广播文件(.mp3)?并在两个设备都有文件时同步播放?
我知道我的问题很大。但如果有人建议我应该去哪个方向。我知道我们可以通过 gameKit(GKsession/GKPeerPickerController) 实现这一点,但我也无法真正理解这两者的工作原理,我如何在接收数据后同步它们的播放。
非常感谢大家的帮助
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):
ios - Gamekit 延迟
我对 GKSessions 有以下问题: 在客户端/服务器应用程序中发送数据时有时会有很大的延迟(3-4 秒有时长达 10 秒)。
如果服务器在延迟期间发送了 10 个数据包,那么这 10 个数据包会在客户端一次全部接收。奇怪的是,服务器在延迟期间仍然接收来自客户端的数据包。
这种延迟在 WiFi 网络中似乎更糟,但也发生在蓝牙网络中。
有没有其他人在使用 gamekit 时遇到过这样的延迟峰值?这个问题的根源可能是什么?
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 还是新的。是的,在编写或练习代码时我有点挑剔,它必须尽可能不包含任何错误/警告。
这些是出现警告的代码块:
编辑:
标题有这个:
}
ios - 如何使用 GKSession 实现 Master-Client 模型?
我现在正在与 GKSession 合作。我想将 2 台以上的 iPad 相互连接。
我可以使用蓝牙 GKSession PeerPickerController 连接其中两个。我对这些东西很陌生。
任何人都可以给我一些指向或链接到实现这种模型的教程吗?
ios - GKSession模式peer:如何在没有任何按钮/确认的情况下自动连接两个peer?
我想在没有 GKPeerPickerController 且不按下任何“连接按钮”的情况下在 2 部 iPhone 之间建立蓝牙连接。
我正在使用以下代码:
当应用程序在双方都启动时,在双方 都调用- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state,状态为“GKPeerStateAvailable”。
对于“经典”应用程序,两侧都会显示一个弹出窗口以请求连接,并且大多数情况下,两个“用户”不会同时单击连接按钮。
如果我想要一个“自动连接”,我需要一种机制来仅在一侧启动会话,因为如果没有这种机制,将启动两个会话并发生错误。
任何想法/帮助?
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.
ios - 使用 GKSession 作为客户端和服务器
我可以实现两个 GKSession,一个作为客户端,另一个作为服务器吗?使用 WiFi 和蓝牙实现此连接是否存在问题或任何限制?谢谢!