gpt4 book ai didi

iphone - GameKit:在没有实际连接的情况下使用 GKSession 发送额外信息?

转载 作者:行者123 更新时间:2023-12-03 19:54:41 25 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,该应用程序允许用户在本地与其他设备共享 PDF。当应用程序启动时,设备主动成为搜索正在广播文件的服务器的客户端。当客户端看到服务器时,它会在其选项卡中添加一个角标(Badge),并在其表中添加一个条目。

我遇到的问题是 GKSession 只允许在建立连接之前传输一个字符串 - 对等显示名称。我想传输的是文件名、页数,也许还有缩略图。

我目前能想到实现此行为的唯一方法是自动连接客户端和服务器,交换文件信息,然后自动断开连接。如果当前只有一两个文件正在广播,这可能会很有效,但当许多不同的设备正在广播时,可能会出现线程/同步问题。

例如,可能有 7 个文件可用。因此,客户端必须一一连接到它们才能接收所有文件的信息。这可能需要相当长的时间,并且用户可能已经决定他们希望下载“文件 1”。通过点击“文件 1”,应建立连接并开始传输。如果客户端正忙于检索有关其他可用文件的信息,这可能无法立即发生。

我还阅读了与服务器断开连接后不久再次连接到服务器的一些问题..( what GKSession doesn't connect on every attempt? )。

所以我想这可以归结为简单的问题 - 有谁知道如何允许客户端接收有关服务器的其他信息,而不仅仅是对等 ID 和对等名称?

最佳答案

如何以 csv 格式设置显示名称,并且当您收到 csv 名称时,仅显示设备名称。

或者您可以发送 NSDictionary 的 JSON 字符串作为显示名称

将 Json 转换为 NSString 的示例:

{
"DeviceName" : "Example",
"File" : [
{
"FileName" : "PDF1"
"TotalPages" : 100
}
]
}

字符串化版本:

{"DeviceName" : "Example","File" : [{"FileName" : "PDF1","TotalPages" : 100}]}

然后,当您收到 DisplayName 时,仅显示 DeviceName 并在某处解析文件详细信息,以便稍后向服务器发送请求。

请记住,我不知道 GKSession 是否对显示名称长度有限制,因此此解决方案可能不适用于大量文件

关于iphone - GameKit:在没有实际连接的情况下使用 GKSession 发送额外信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com