问题标签 [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.
chat - 检索 deepstream.io 中的记录列表
我目前正在实施一个简单的聊天,以了解如何使用 deepstream.io。有没有一种简单的方法可以从记录列表中获取间隔?想象一下用户想要通过回滚历史来获取旧聊天消息的场景。我在文档中找不到任何关于此的内容,并且我已经阅读了源代码,但没有运气。
我最好的选择是直接针对数据库(例如 RethinkDb)工作,还是有一种简单的方法可以通过 deepstream 来完成?
javascript - 在 deepstream.io 中的第一个 getRecord 上创建 RethinkDB 表
我有一个使用官方连接器连接到 RethinkDB 的 deepstream 服务器。
最初数据库中没有表。
创建记录时,如果表不存在,则会自动创建表。
按预期创建的表。
但是,如果我尝试创建一个“嵌套表”,它就不起作用。
尝试创建名称为“table/collection/id”的记录时未创建表
我必须先手动创建一个表,然后添加集合吗?
编辑
我笨拙地使用术语。我希望创建一个代表整个聊天的表格,然后创建一个代表实际房间的文档。然后将新的聊天消息(记录)放入此文档中。
javascript - 我必须在客户端创建记录吗?
它的工作方式不是当我要求:
它将使用操作“CR”调用服务器(请参阅http://deepstream.io/docs/constants.html#Actions以供参考),但我只希望客户端能够读取而不创建记录,即使它不存在。
这样做的原因是我不希望客户端能够创建无限的记录。我想在服务器上控制它。
如果它是“CR”,我可以拆分收到的操作,然后如果它不存在则创建特定记录,然后客户端可以请求记录,但我真的不想以这种方式破解它。
所以问题是:有没有办法在客户端尝试获取记录时只发送“R”,还是必须发送“CR”?
javascript - 在 DeepstreamIO 中创建动态命名记录
我正在尝试创建一条记录,该记录的调用方式与我们数据库中的调用方式相同。我正在尝试使用常规的 getRecord() 调用从客户端创建此记录。我得到的错误是我不能在记录上做任何事情,当我查看对象时,它的 isReady 总是错误的。
这就是我尝试创建记录的方式:
- 注册(在数据库中插入一个唯一的 ID)
- 登录(前端知道唯一ID)
- 使用 Deepstream 客户端登录(有效)
- 使用 client.record.getRecord('path') 创建/获取记录
似乎记录已创建等,但 isReady 始终为假,我根本无法使用记录。
我试图创建一个具有静态名称的记录,这可以正常工作。
那么,有什么想法为什么我不能使用数据库中的 ID 创建 Deepstream 记录?ID 看起来像这样:4d06902a-57f7-4ea8-b76b-f487cb369c5b(如果有什么不同,我正在使用 RethinkDB)
deepstream.io - 如何重写消息以包含用户名
我希望创建记录的用户名与该记录相关联。这应该发生在服务器上,而不是通过原始客户端连接。我在服务器上看到的唯一可以访问用户名的地方是 canPerformAction。是否可以在存储连接器中创建/更新记录之前重写消息以插入用户名?即使我要编写自己的存储连接器,用户名也不会传递给存储连接器 API。你能给我任何其他的选择或指导吗?
javascript - Deepstream.io 中的 dataTransform 在控制台中给出“Uncaught SyntaxError: Unexpected end of input”
我正在尝试使用新 API 操作通过 Deepstream 发送回客户端的数据dataTransforms
,但是,我总是进入Uncaught SyntaxError: Unexpected end of input
控制台。为 Deepstream 进行数据库查找可能需要很长时间,但我不太确定。
我的相关代码是:
每当从 RECORD 中读取时,它都会检查它是否是从团队记录中读取的。如果是从团队记录中读取,它将获取属于该团队的所有成员并将其添加到成员:{}。
当它遍历所有成员并添加有关它们的信息时,它将返回新数据。
那么,知道可能出了什么问题吗?
我理解dataTransforms
错了吗?
javascript - 更改嵌套值时不会触发记录订阅
当我更改在订阅上订阅的记录上的嵌套值时,不会触发。
例子:
现在,如果我更新用户的值,例如:
我希望记录更改具有相同 id 的 id 2 的成员,但添加了管理值,然后触发 subscribe() 应该注意到的更改事件。
更改部分发生但它不会触发更改事件,因此永远不会触发订阅。
难道我做错了什么?如果我添加一个用户,订阅就有效。
编辑:
所以我找到了一种使更改触发订阅的方法,即克隆成员,进行更改,然后用新值替换整个成员。但是,文档(http://deepstream.io/docs/record.html#set ( path , value ) (对于断开的链接感到抱歉))声明我可以这样做record.set( 'personalData.firstname', 'Marge' );
,这只会更新个人数据中的名字。
我知道我正在尝试更改数组的值,这不起作用吗?
我只能用于set()
更改对象的值吗?
这是我现在正在使用的解决方法:
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 提供。
python - deepstream.io 与 python 烧瓶
请有人指导我或指出我正确的道路。我想将http://deepstream.io/与 python 烧瓶一起使用。我的 Web 应用程序有 python 烧瓶,并且有一些事件要传递给客户端。那么我将如何从烧瓶应用程序与 deepstream.io 进行通信。我浏览了这些文件,但它们都与 JS 方面有关。
提前致谢。
javascript - Deepstream 是否会跟踪 RethinkDB 中的整个文档?
我知道 Deepstream 会跟踪数据库中文档的 _d 部分中的所有内容,我需要使用 Deepstream 来更改其中的任何内容,这很好。我想知道是否不允许我更改 _d 之外的任何值?
我的数据库架构如下所示:
现在,当用户注册时,我将删除registrationCode
并替换为password
,如下所示:
但是,当 Deepstream 在我的客户端上登录时,它将再次替换password
为registrationCode
相同的值。我的猜测是它缓存了整个文档,而不仅仅是里面的内容_d
。这个对吗?