Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用PubNub History API检索消息一次,并在多个视图中使用它们_Ios_Objective C_Pubnub - Fatal编程技术网

Ios 使用PubNub History API检索消息一次,并在多个视图中使用它们

Ios 使用PubNub History API检索消息一次,并在多个视图中使用它们,ios,objective-c,pubnub,Ios,Objective C,Pubnub,我正在用publinubiOSSDK开发一个应用程序,它工作得很好,但是历史API有一个恼人的问题 我必须在多个视图控制器中列出消息历史记录,这很好,但每次打开新视图时,我都必须等待2-3秒才能看到消息。有没有避免这种情况的常规做法 我使用的是requestHistoryForChannel:在每个视图中使用块控制器viewDidLoad。我知道这是一个问题,因为每次我打开一个新视图,客户端都需要重新连接并检索历史记录,但我找不到更好的解决方案。我必须在每个视图中下载同一频道的历史记录,因此内容

我正在用
publinub
iOS
SDK
开发一个应用程序,它工作得很好,但是历史
API
有一个恼人的问题

我必须在多个视图控制器中列出消息历史记录,这很好,但每次打开新视图时,我都必须等待2-3秒才能看到消息。有没有避免这种情况的常规做法


我使用的是
requestHistoryForChannel
:在每个视图中使用块控制器
viewDidLoad
。我知道这是一个问题,因为每次我打开一个新视图,客户端都需要重新连接并检索历史记录,但我找不到更好的解决方案。我必须在每个视图中下载同一频道的历史记录,因此内容总是相同的,因此我认为当我启动应用程序并在整个应用程序中使用这些数据时,获取消息是绝对可能的,不用等待,但我不知道如何做

实际上,这不是PubNub SDK的问题。我可以建议您创建一个数据模型,该模型将为您管理缓存,并且只有在需要时或者您认为应该将其取出时,您才会提取历史记录


至于重新连接:PubNub SDK始终保持很少的TCP连接,并且在应用程序暂停或断开请求之前不会断开它们。事实上,您需要2秒钟的时间,这意味着存在大量数据、连接速度慢或同时存在这两种情况。您还可以使用
limit
参数限制您想要接收的消息数量,或者使用
startDate
endDate
参数对消息进行切片(有许多指定的方法与historyAPI相关)。

谢谢,我将首先尝试限制消息。实际上,我正在使用一些观察者方法,例如
addClientConnectionStateObserver:
,这些方法可能会影响速度,或者无关紧要?@cimp23这是观察者,它只负责事件传递。顺便说一句,您可以使用它在历史处理完成时注册几个观察者(如果需要)。