0

我最近一直在使用记录,我不确定 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
});

那么问题来了:就大小而言的记录是解决此类问题的适当解决方案,还是更适合使用列表/RPC?

提前致谢!

4

1 回答 1

0

每条消息有 4MB 的硬性限制,但这对于最长的聊天记录来说也足够了。问题更多的是记录是深度流中的一个原子单元——这意味着你不能加载半条记录(但是它们确实会发送更新的增量)。当谈到存储(可能很长)聊天历史时,我认为有两种选择:

A) 如果您的消息保持可变(例如,用户可以在发送消息后对其进行编辑)为每条消息创建一条记录并将记录名称存储在一个列表中。关于添加分页以提高处理大型列表的效率存在一个未解决的问题。

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

  • 将事件用于聊天消息
  • 构建一个后端进程,监听来自任何聊天的事件并将它们存储在数据库中(例如ds.event.listen( 'chat-message/(.*)', () => {} );
  • 添加 RPC 以检索聊天记录的特定部分
于 2016-04-11T05:39:27.413 回答