Tag: pubnub

在PubNub Swift中访问PNMessageResult

看到这个链接 基于以下function,我能够收到答复, func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) { println(message) 但是,我只能以data.data的forms访问数据,格式为PNMessageData。 即使按照以下格式返回数据: { message = "{}"; subscribedChannel = 123; timetoken = 14392105288780634;} 如何访问message.data(PNMessageData)中的消息的值?

React-native pubnub WebRTC Video Chat

我正在开发一个移动应用程序(react-native + pubnub)来进行WebRTCvideo聊天。 我的问题是,pubnub没有react-native的特定SDK,我该如何解决这个问题?

处理来自PubNub历史的消息作为“全局variables”

我试图找出最聪明,最可靠的方法,使我检索的PubNub历史访问多个视图控制器。 正如我所看到的那样,有多种方法可以做到这一点,但是在阅读完一堆问题和文章之后,我无法决定哪种解决scheme是最好的。 其实我认为在我的情况下,dependency injection是正确的想法,但我不知道,因为我看到在示例PubNub应用程序中的不同解决scheme,总体上我从来没有听说过,所以我会避免它,如果可能的话。 可能的方法: 1.使用AppDelegate 这可能是最简单的方法,但很多开发人员说,AppDelegate实际上不是存储全局数据的最佳位置。 所以我不想这样做。 2.使用Singleton 作为一个例子,我在PubNub的iPad演示程序( PNDataManager文件)中看到了这个解决scheme。 我确信这是最好的办法,但是在我读了Stephen Poletto关于objc.io的关于单身人士的文章之后,我改变了主意,因为他指出了一些问题,对我来说可能是相当重要的 。 这是一篇非常有用的文章,值得一读,但实际上我只会抓住我认为重要的想法。 “假设我们正在构build一个应用程序,让用户可以看到他们的朋友列表,他们的每个朋友都有个人资料图片,我们希望应用程序能够下载和caching设备上的这些图片。 ,我们可能会发现自己写了一个SPThumbnailCache单例“ 假设我们想cachingmessage数组,而不是图像,我们用这个方法检索[PubNub requestFullHistoryForChannel: withCompletionBlock:^(NSArray *message, PNChannel *channel, PNDate *fromDate, PNDate *toDate, PNError *error)}]; 在我们的根视图控制器中调用ViewController1 。 “我们继续构build应用程序,一切似乎都在世界上,直到有一天,当我们决定实施”注销“function的时候,用户可以在应用程序内切换帐户。突然,我们有一个讨厌的问题在我们的手中:特定于用户的状态存储在全局单例中,当用户注销应用程序时,我们希望能够清除磁盘上的所有持久状态,否则我们会在用户的数据上留下孤立的数据设备,浪费宝贵的磁盘空间,如果用户注销并签入新帐户,我们也希望能够为新用户提供一个新的SPThumbnailCache,这里的问题在于,是“创造一次,永远活着”的例子,你可以设想一些上述问题的解决scheme,也许我们可以在用户注销时拆除单例实例 这里的问题是,按照定义,单身人士被认为是“创造一次,永远活着”的例子。 您可以想象一下上面概述的问题的一些解决scheme。 也许我们可以在用户注销时拆除单例实例。我们当然可以使这个解决scheme起作用,但是成本太高了。 一方面,我们失去了dispatch_once解决scheme的简单性,这是一个保证线程安全的解决scheme,所有调用[SPThumbnailCache sharedThumbnailCache]的代码都只能得到相同的实例。 我们现在需要对使用缩略图caching的代码的执行顺序非常小心。因为对于单例实例(即单例pipe理自己的生命周期)没有明显的所有者,所以很难“closures“一个单身人士。 这里的教训是,单身人士应该只保留在全球的国家,而不是任何范围。 如果状态的范围小于“我的应用程序的完整生命周期”的任何一个会话,则该状态不应该由单例pipe理。pipe理用户特定状态的单例是一种代码异味,您应该批判性地重新评估您的devise对象图。 “ 当用户login到一个新帐户时,我们应该能够构build一个全新的SPThumbnailCache并与之交互,而不必关注销毁旧的缩略图caching。 旧的视图控制器和旧的缩略图caching应该根据典型的对象pipe理规则,在后台自动清理。 简而言之,我们应该将与用户A相关联的状态从与用户B相关联的状态中分离出来。 我知道一个NSArray与PNMessage对象,不包含图像是不一样的,它更容易处理,但我真的很困惑,我应该如何处理它们。 最初,我会将requestFullHistoryForChannel: withCompletionBlock:的messagevariablesrequestFullHistoryForChannel: withCompletionBlock:传递给名为self.messageGlobal (我可以在每个视图中使用一个单例)的实例variables,并在用户注销时将其重置。 //inside the viewWillAppear [PubNub requestFullHistoryForChannel: withCompletionBlock:^(NSArray […]

PubNub长时间轮询和sockets – 手机电池寿命

我最近开始在我的iOS应用程序中使用PubNub,并且非常满意。 不过,我一直在寻找其他可用的选项,例如使用Websockets的Pusher和Realtime.co。 另一方面,PubNub使用长轮询。 我做了自己的小小的速度比较,为了我的目的,我发现它们都足够快。 PubNub提供了一些不错的function,如消息历史logging和频道中的每个人的列表,所以除了我倾向于他们的一切。 我的问题是,我应该关心电池使用寿命,以及像PubNub这样的长轮询解决scheme吗? Websockets解决scheme的效率会更高吗?