Javascript 建议使用deepstream.io中的记录

Javascript 建议使用deepstream.io中的记录,javascript,json,deepstream.io,Javascript,Json,Deepstream.io,我最近一直在使用记录,我不确定json结构的总体大小是否存在实际限制。 是否有任何建议的最大长度,例如,您是否可以将整个聊天历史记录存储为(匿名)记录,其中可能有数百条条目 json文档结构可能如下所示: var record = client.record.getRecord( 'chat/5ak1g' ); record.set({ 2016.03.25.16:22:25: { user: 'Ann', message: 'Hey, whats up

我最近一直在使用记录,我不确定json结构的总体大小是否存在实际限制。 是否有任何建议的最大长度,例如,您是否可以将整个聊天历史记录存储为(匿名)记录,其中可能有数百条条目

json文档结构可能如下所示:

var record = client.record.getRecord( 'chat/5ak1g' );

record.set({
    2016.03.25.16:22:25: {
        user: 'Ann',
        message: 'Hey, whats up?'
    }
    2016.03.25.16:22:40: {
        user: 'Sue',
        message: 'Wanna get some sushi?'
    }
    2016.03.25.16:23:10: {
        user: 'Ann',
        message: 'cdn.example.com/sj48s2f4.jpg'
    }
  //more messages
});
所以这里有一个问题:就大小而言,记录是解决此类问题的合适方法,还是更适合使用list/RPC


提前谢谢

每条消息都有4MB的硬限制,但即使是最长的聊天历史,这也应该足够了。问题更多的是,一条记录在deepstream中是一个原子单元,这意味着你不能加载半条记录(不过他们会发送增量进行更新)。在存储聊天记录(可能很长)时,我认为有两种选择:

A) 如果您的邮件保持可变(例如,用户可以在邮件发送后编辑邮件),请为每条邮件创建一条记录,并将记录名称存储在列表中。有一个关于添加分页以使处理大型列表更高效的方法

B) 如果您的聊天历史记录是不可变的,但您希望长期保存大量的历史记录,您可以按如下方式构建它:

  • 将事件用于聊天信息
  • 构建一个后端进程,用于侦听来自任何聊天室的事件并将其存储在数据库中(例如,
    ds.event.listen('chat message/(.*),()=>{};
  • 添加RPC以检索聊天历史记录的特定部分