【问题标题】:Retrieving a list of records in deepstream.io检索 deepstream.io 中的记录列表
【发布时间】:2015-06-24 10:34:48
【问题描述】:

我目前正在实施一个简单的聊天,以了解如何使用 deepstream.io。有没有一种简单的方法可以从记录列表中获取间隔?想象一下用户想要通过回滚历史来获取旧聊天消息的场景。我在文档中找不到任何关于此的内容,并且我已经阅读了源代码,但没有运气。

我最好的选择是直接针对数据库(例如 RethinkDb)还是通过 deepstream 进行操作?

【问题讨论】:

    标签: chat rethinkdb deepstream.io


    【解决方案1】:

    第一:坏消息: deepstream.io 纯粹是一个消息服务器——它不会查看通过它的数据。这意味着任何类型的查询功能都需要由另一个系统提供,例如连接到 RethinkDB 的客户端。

    话虽如此:好消息:

    我们还在考虑将聊天功能(包括广泛的历史记录保存和搜索)添加到我们的应用程序中。

    由于聊天消息是不可变的(一旦发送就不会改变),我们将使用深度流事件,而不是记录。为了便于保存聊天记录,我们将创建一个“聊天记录提供程序”,这是一个位于 deepstream 和我们的数据库之间的节点进程,用于侦听以 'chat-' 开头的任何事件。 (假设你的聊天事件被命名为 chat-<chat-name>/<message-id>,例如chat-idle-banter/254kbsdf-5mb2soodnv)

    在非常高的层次上,我们的聊天历史提供者将如下所示:

    ds.event.listen( /chat-*/, function( chatName, messageData ) {
        //Add the timestamp on the server-side, otherwise people
        //can change the order of messages by changing their system clock
        messageData.timestamp = Date.now();
        rethinkdbConnector.set( chatName, messageData );
    });
    
    ds.rpc.provide( 'get-chat-history', function( data, response ){
        //Query your database here
    });
    

    目前 deepstream 仅支持“监听”记录,但即将推出的版本将为事件和 RPC 提供相同的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      相关资源
      最近更新 更多