问题标签 [deepstream.io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1189 浏览

chat - 检索 deepstream.io 中的记录列表

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

我最好的选择是直接针对数据库(例如 RethinkDb)工作,还是有一种简单的方法可以通过 deepstream 来完成?

0 投票
1 回答
314 浏览

javascript - 在 deepstream.io 中的第一个 getRecord 上创建 RethinkDB 表

我有一个使用官方连接器连接到 RethinkDB 的 deepstream 服务器。

最初数据库中没有表。 在此处输入图像描述

创建记录时,如果表不存在,则会自动创建表。

按预期创建的表。 在此处输入图像描述

但是,如果我尝试创建一个“嵌套表”,它就不起作用。

尝试创建名称为“table/collection/id”的记录时未创建表 在此处输入图像描述

我必须先手动创建一个表,然后添加集合吗?


编辑

我笨拙地使用术语。我希望创建一个代表整个聊天的表格,然后创建一个代表实际房间的文档。然后将新的聊天消息(记录)放入此文档中。

0 投票
1 回答
110 浏览

javascript - 我必须在客户端创建记录吗?

它的工作方式不是当我要求:

它将使用操作“CR”调用服务器(请参阅http://deepstream.io/docs/constants.html#Actions以供参考),但我只希望客户端能够读取而不创建记录,即使它不存在。

这样做的原因是我不希望客户端能够创建无限的记录。我想在服务器上控制它。

如果它是“CR”,我可以拆分收到的操作,然后如果它不存在则创建特定记录,然后客户端可以请求记录,但我真的不想以这种方式破解它。

所以问题是:有没有办法在客户端尝试获取记录时只发送“R”,还是必须发送“CR”?

0 投票
1 回答
109 浏览

javascript - 在 DeepstreamIO 中创建动态命名记录

我正在尝试创建一条记录,该记录的调用方式与我们数据库中的调用方式相同。我正在尝试使用常规的 getRecord() 调用从客户端创建此记录。我得到的错误是我不能在记录上做任何事情,当我查看对象时,它的 isReady 总是错误的。

这就是我尝试创建记录的方式:

  1. 注册(在数据库中插入一个唯一的 ID)
  2. 登录(前端知道唯一ID)
  3. 使用 Deepstream 客户端登录(有效)
  4. 使用 client.record.getRecord('path') 创建/获取记录

似乎记录已创建等,但 isReady 始终为假,我根本无法使用记录。

我试图创建一个具有静态名称的记录,这可以正常工作。

那么,有什么想法为什么我不能使用数据库中的 ID 创建 Deepstream 记录?ID 看起来像这样:4d06902a-57f7-4ea8-b76b-f487cb369c5b(如果有什么不同,我正在使用 RethinkDB)

0 投票
1 回答
149 浏览

deepstream.io - 如何重写消息以包含用户名

我希望创建记录的用户名与该记录相关联。这应该发生在服务器上,而不是通过原始客户端连接。我在服务器上看到的唯一可以访问用户名的地方是 canPerformAction。是否可以在存储连接器中创建/更新记录之前重写消息以插入用户名?即使我要编写自己的存储连接器,用户名也不会传递给存储连接器 API。你能给我任何其他的选择或指导吗?

0 投票
1 回答
85 浏览

javascript - Deepstream.io 中的 dataTransform 在控制台中给出“Uncaught SyntaxError: Unexpected end of input”

我正在尝试使用新 API 操作通过 Deepstream 发送回客户端的数据dataTransforms,但是,我总是进入Uncaught SyntaxError: Unexpected end of input控制台。为 Deepstream 进行数据库查找可能需要很长时间,但我不太确定。

我的相关代码是:

每当从 RECORD 中读取时,它都会检查它是否是从团队记录中读取的。如果是从团队记录中读取,它将获取属于该团队的所有成员并将其添加到成员:{}。

当它遍历所有成员并添加有关它们的信息时,它将返回新数据。

那么,知道可能出了什么问题吗?

我理解dataTransforms错了吗?

0 投票
1 回答
136 浏览

javascript - 更改嵌套值时不会触发记录订阅

当我更改在订阅上订阅的记录上的嵌套值时,不会触发。

例子:

现在,如果我更新用户的值,例如:

我希望记录更改具有相同 id 的 id 2 的成员,但添加了管理值,然后触发 subscribe() 应该注意到的更改事件。

更改部分发生但它不会触发更改事件,因此永远不会触发订阅。

难道我做错了什么?如果我添加一个用户,订阅就有效。

编辑:

所以我找到了一种使更改触发订阅的方法,即克隆成员,进行更改,然后用新值替换整个成员。但是,文档(http://deepstream.io/docs/record.html#set ( path , value ) (对于断开的链接感到抱歉))声明我可以这样做record.set( 'personalData.firstname', 'Marge' );,这只会更新个人数据中的名字。

我知道我正在尝试更改数组的值,这不起作用吗?

我只能用于set()更改对象的值吗?

这是我现在正在使用的解决方法:

0 投票
2 回答
1341 浏览

ssl - Deepstream 的 HTTPS 和 WSS 设置?

您能否指点我为 Express 和 Deepstream 配置 SSL 的 Deepstream 设置?

在尝试配置 https 和 wss 后,我主要看到以下错误。另外,我使用的是自签名证书。

混合内容:“ https://127.0.0.1:8082/ ”处的页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“ http://127.0.0.1:6020/engine.io/?EIO=3&transport=polling '。此请求已被阻止;内容必须通过 HTTPS 提供。

0 投票
1 回答
529 浏览

python - deepstream.io 与 python 烧瓶

请有人指导我或指出我正确的道路。我想将http://deepstream.io/与 python 烧瓶一起使用。我的 Web 应用程序有 python 烧瓶,并且有一些事件要传递给客户端。那么我将如何从烧瓶应用程序与 deepstream.io 进行通信。我浏览了这些文件,但它们都与 JS 方面有关。

提前致谢。

0 投票
1 回答
196 浏览

javascript - Deepstream 是否会跟踪 RethinkDB 中的整个文档?

我知道 Deepstream 会跟踪数据库中文档的 _d 部分中的所有内容,我需要使用 Deepstream 来更改其中的任何内容,这很好。我想知道是否不允许我更改 _d 之外的任何值?

我的数据库架构如下所示:

现在,当用户注册时,我将删除registrationCode并替换为password,如下所示:

但是,当 Deepstream 在我的客户端上登录时,它将再次替换passwordregistrationCode相同的值。我的猜测是它缓存了整个文档,而不仅仅是里面的内容_d。这个对吗?