Javascript 如何获取PubNub中未读邮件的数量

Javascript 如何获取PubNub中未读邮件的数量,javascript,titanium,titanium-mobile,pubnub,Javascript,Titanium,Titanium Mobile,Pubnub,嘿,我正在使用pubnub服务向我的Tianium应用程序添加聊天功能,但我想知道是否有办法获取未读邮件的数量。 api引用中没有关于此的信息 我试图在历史记录中保存消息的数量,然后重新加载新的历史记录并计算差异,但这是如此愚蠢和复杂的解决方案,任何人都知道如何实现这一点? 谢谢在PubNub上跟踪已读/未读邮件 几年前,我们承诺我们将使它成为一种超级简单的方法,用于跟踪应用程序中的未读邮件计数。 现在终于有可能了! 使用, 您可以将永久状态对象和值添加到多设备应用程序中。 您将使用PubNub

嘿,我正在使用
pubnub
服务向我的Tianium应用程序添加聊天功能,但我想知道是否有办法获取未读邮件的数量。
api引用中没有关于此的信息

我试图在历史记录中保存消息的数量,然后重新加载新的历史记录并计算差异,但这是如此愚蠢和复杂的解决方案,任何人都知道如何实现这一点? 谢谢

在PubNub上跟踪已读/未读邮件 几年前,我们承诺我们将使它成为一种超级简单的方法,用于跟踪应用程序中的未读邮件计数。 现在终于有可能了! 使用, 您可以将永久状态对象和值添加到多设备应用程序中。 您将使用PubNub函数键/值存储引擎中提供的原子方法。 PubNub Functions Storage Engine()被复制到每个数据中心,使其能够快速可靠地存储/检索数据

您只需创建一个函数即可
递增
递减
检索
未读邮件的当前计数

统计未读邮件数 我们的函数将对发送到通道的消息进行计数,并使用原子递增和递减方法(使用以通道和用户ID命名的键)保存值。 这是一种称为“常规名称空间”的实用设计模式。 这意味着您将使用消息中的提示和信息片段创建一个基于消息中的信息可构造的名称。 在本例中,我们将使用通道名称作为常规名称间距

第一个函数将增加一个值来跟踪用户收件箱中的未读邮件

递增和递减未读消息计数器 频道:
房间。*

事件:
发布前打开

//访问分布式数据库
const db=require('kvstore');
导出默认值(请求)=>{
//通常基于请求参数和通道名称构建密钥ID。
让counterId=request.channels[0]+'/'+request.params.uuid;
//递增或递减未读消息计数器
让方法=request.message.read?-1:1;
//递增/递减并读取未读消息计数器
返回db.incrCounter(计数器ID,方法)。然后(()=>{
返回db.getCounter(计数器ID)。然后((计数器)=>{
request.message.unread=计数器| | 0;
返回请求。ok();
});
});
}
现在,发布到此频道层次结构
room.*
的任何JSON消息都将通过增加计数器来跟踪未读消息。 计数器可以通过包含读取标志来递减。 如果需要,此读取方法也可用作读取回执跟踪系统。 您可以在Adam Bavosa:的文章中了解有关阅读收据的更多信息

使用计数器 将消息发布到
房间。john smith
如下所示:

{ "message" : "Hello John!" }
{ "message" : "Hello John!", "unread" : 1 }
John将收到您的邮件,并在邮件中添加未读邮件计数器。 消息将被一个
未读
变量扩充。 现在,消息如下所示:

{ "message" : "Hello John!" }
{ "message" : "Hello John!", "unread" : 1 }
John可以通过发布以下内容以阅读回执回复:

{ "read" : true }
该消息将使用
未读
计数器更新已读回执

{ "read" : true, "unread" : 0 }

就这样!你做到了。模式将根据群组和一对一消息应用程序而改变。

感谢您的回复,但我没有正确理解您的意思,您的意思是跟踪历史时间标记并检查是否有新消息,我认为如果有新消息但我无法获取其号码,并且我没有获得您的第二个解决方案,这将有所帮助对不起:(获取该号码的唯一方法是进行完整获取。此外,我们正在添加一项未来的服务,该服务将自动为您提供此服务。但是,它将在几个月后可用。我如何在android中进行完整获取?任何资源?完整获取android示例:-您可以使用分页示例获取所有消息。您好,您有一个好问题。我们已经建立了它,它将在第二季度提供!