使用 PubNub iOS SDK 订阅频道时如何不 "play catch up" 错过消息?
How to not "play catch up" on missed messages when subscribing to a channel using the PubNub iOS SDK?
我正在使用 PubNub iOS SDK 并取消订阅某个频道,然后不久后(1-3 分钟)我重新订阅它。
我注意到当订阅一个频道时,PubNub 将发送自取消订阅该频道后错过的所有消息(有限制)。我在 this blog post and this one 中看到,这可以在 JavaScript SDK 中通过在订阅频道的调用中使用 restore: true
来完成。
我尝试做相反的事情 - 使用 restore: false
- 订阅时:
NSString *channelName = @"myChannelName";
NSDictionary *state = @{channelName: @{@"restore": @(NO)}};
[self.client subscribeToChannels:@[channelName]
withPresence:YES
clientState:state];
然而,这并没有奏效,所有错过的消息都在订阅后直接收到。
有什么方法可以不收到所有错过的消息吗?
根据 the PubNub GitHub,这可以通过将 PNConfiguration
中的 restoreSubscription
设置为 NO
来抑制。
您必须先定义您的 PNConfiguration
:
@property(nonatomic, strong) PNConfiguration *myConfig;
然后 PubNub 给你如下选项:
self.myConfig.restoreSubscription = NO;
然后在您的 PubNub
上设置您的配置
[PubNub setConfiguration:self.myConfig];
有关配置的更多信息位于上面 PubNub link 的 配置 部分。
感谢您报告此问题。我们检查了负责取消订阅的代码,并找到了它可能发生在您身上的原因。版本已推送并可用于 GitHub 和 CocoaPods (v4.2.3),应该可以解决您的问题。
我正在使用 PubNub iOS SDK 并取消订阅某个频道,然后不久后(1-3 分钟)我重新订阅它。
我注意到当订阅一个频道时,PubNub 将发送自取消订阅该频道后错过的所有消息(有限制)。我在 this blog post and this one 中看到,这可以在 JavaScript SDK 中通过在订阅频道的调用中使用 restore: true
来完成。
我尝试做相反的事情 - 使用 restore: false
- 订阅时:
NSString *channelName = @"myChannelName";
NSDictionary *state = @{channelName: @{@"restore": @(NO)}};
[self.client subscribeToChannels:@[channelName]
withPresence:YES
clientState:state];
然而,这并没有奏效,所有错过的消息都在订阅后直接收到。
有什么方法可以不收到所有错过的消息吗?
根据 the PubNub GitHub,这可以通过将 PNConfiguration
中的 restoreSubscription
设置为 NO
来抑制。
您必须先定义您的 PNConfiguration
:
@property(nonatomic, strong) PNConfiguration *myConfig;
然后 PubNub 给你如下选项:
self.myConfig.restoreSubscription = NO;
然后在您的 PubNub
上设置您的配置
[PubNub setConfiguration:self.myConfig];
有关配置的更多信息位于上面 PubNub link 的 配置 部分。
感谢您报告此问题。我们检查了负责取消订阅的代码,并找到了它可能发生在您身上的原因。版本已推送并可用于 GitHub 和 CocoaPods (v4.2.3),应该可以解决您的问题。