问题标签 [ddp]

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 回答
298 浏览

javascript - Meteor 使用 DDP 将数据从客户端推送到服务器

我计划为强类型、数据驱动的后端平台编写一个流星/DDP 服务器。服务器必须能够向客户端推送数据和接受来自客户端的数据。

阅读DDP 文档后,该协议似乎只支持客户端订阅数据。从文档中,我看不到流星如何将数据从客户端推送回服务器。

该文档指出 DDP 支持“客户端对服务器的远程过程调用”。我想我可以定义 C(R)UD 程序来将修改推送回服务器,但我担心我会偏离原生 Meteor 体验。

任何建议表示赞赏!

0 投票
1 回答
355 浏览

python - 使用 Tor 和 Meteor DDP

我正在尝试使用流星 ddp 客户端在我的 python 脚本中使用流星应用程序中的数据。IT 是一个使用 Tor 代理 API 的脚本,称为 stem。这就是我的 Tor 通信器的样子,如果单独运行它可以工作:

Tor 通信器(取自 Tor 教程页面,稍作改动):

上面的脚本是从此脚本运行的:

但它给了我这个结果:

0 投票
2 回答
372 浏览

meteor - Meteor 中的 DDP 可以使用哪些方法?

通过 DDP 与 Meteor 服务器通信时,我发现以下方法可用:

  • 如果您myMethodMeteor.methods({ ... })
    • {"msg":"method","method":"myMethod","params":[],"id":"1"}
  • 如果您已启用该accounts-password软件包
    • {"msg":"method","method":"createUser","params":[{ ... }],"id":"1"}
    • {"msg":"method","method":"login","params":[{ ... }],"id":"1"}
  • 如果存在mycoll服务器上 调用的集合
    • {"msg":"method","method":"/mycoll/insert","params":[{"_id":"some-doc"}],"id":"1"}
    • {"msg":"method","method":"/mycoll/update","params":[{ ... }],"id":"1"}
    • {"msg":"method","method":"/mycoll/remove","params":[{"_id":"some-doc"}],"id":"1"}

但是,例如,现在可用的是{"msg":"method","method":"/mycoll/find","params":[{"_id":"some-doc"}],"id":"1"}

那么有没有关于哪些方法可用的文档?我找不到任何东西,只有通过尝试很多可能性才找到。

0 投票
1 回答
360 浏览

meteor - 在 Node.js 中使用 DDP,如何使用所需的简单配置对象连接客户端?

我正在使用 simple-config 在加载时从文件中提取配置对象。检查代码时,我可以看到配置对象已正确实例化,但是,我对 ddp.client(config.ddp) 的调用因配置对象而失败。以本地对象的形式将数据放回客户端调用继续有效

如下调用它不起作用:

有人知道我在做什么错吗?

0 投票
1 回答
1152 浏览

javascript - Meteor:通过 DDP 登录并在单独的 Meteor 应用程序中检索当前用户对象

先说一点背景:

我正在开发一个与主应用程序连接的单独移动应用程序。连接成功启动,我可以通过订阅检索所有集合:

现在我想确保用户可以通过第二个应用程序的界面登录。在安装了accounts-password 和meteor-ddp-login包之后,我应该能够通过在客户端使用下一段代码对主应用程序进行身份验证。

嗯,到目前为止一切顺利。不会出现任何错误,并且控制台会记录成功消息。现在问题来了:

如何检索刚刚登录的用户的用户对象。

我在主应用程序中设置了几个发布功能,但用户数据在第二个应用程序中不可供客户端使用(其他集合工作正常,但 Meteor.user() 未定义)。

还有:如何验证使用 Facebook/Google/Twitter 登录的用户

0 投票
1 回答
536 浏览

meteor - Meteor:在端口 80 中阻止 websocket 的解决方法?

我在使用 Meteor 应用程序时遇到问题。某些智能手机在通过 3G/4G 连接时无法接收来自订阅的数据,但在通过 Wi-Fi 连接时可以正常工作。我认为这是因为 Vodafone(移动网络运营商)阻止 websocket 连接到端口 80。

是否可以更改 DDP 端口?有没有人有办法让它工作?

我尝试更改环境变量"DDP_DEFAULT_CONNECTION_URL": "ddp+sockjs://xxxxxx.com:443/sockjs",但它会破坏所有设备的应用程序并引发以下错误:

非常感谢您的帮助和时间!

0 投票
1 回答
900 浏览

java - 我可以在 Java 服务器上运行 Meteor DDP 服务器协议吗?

我正在应用程序中实现实时功能,我想知道是否在 Java 中有 Meteor DDP 协议实现而不是重新发明轮子。

0 投票
1 回答
46 浏览

meteor - 插入多个流星集合的顺序

我在一个基本的流星应用程序中看到了意外的行为,导致我想提出一个设计模式问题以征求意见。

流星应用程序有一个服务器,它从外部源读取图形节点和边的列表,将节点插入到 Nodes 集合中,将边插入到 Edges 集合中,然后将特殊文档插入到第三个 Signal 集合中。客户端已“添加:”所有三个集合上的观察者以检测更改。

我希望在绘制信号命令之前在客户端上看到所有节点和链接。相反,我看到在客户端上的信号命令之后添加了大约 1/3 的节点和边。

我想避免在所有数据都存在之前绘制图表,因此使用 Signal 集合。在 Meteor 中有没有更好的方法来做到这一点?我应该使用不同的设计模式吗?似乎这应该是一个常见的问题。

0 投票
1 回答
23 浏览

json - 如何处理 DDP 中客户端消息中的缺失字段?

我正在编写一个 DDP 服务器。我通读了规范,但在我看来,如果客户端发送格式错误的消息该怎么办。

我看到“客户端和服务器必须忽略消息中的任何未知字段”,但它没有说明缺少字段。还是我错过了什么?

0 投票
0 回答
138 浏览

meteor - 如何使用 DDP 从数组中删除元素

我即将在我们的 DDP 服务器 ( https://github.com/cortexlang/web ) 中构建一个功能,允许用户订阅给定文档的历史值窗口。对历史值的简单订阅可能如下所示:

MyCollection这将返回数组中集合中每个文档的最后 10 个样本。例如,假设MyCollection包含一个具有单个数值的文档,则上述订阅的结果可能是:

这些窗口可能非常大。因此,在添加新值时发送整个数组将是浪费的。相反,如果我只能将新值推送给客户端并推出旧值,那就太好了。

例如,假设我的文档更新为新值“3”。我的数组现在应该如下所示:

在这里,我可以再次发送整个数组。但是,如果我只能发送“3”并删除“5”,效率会高得多。

我注意到 DDPcleared在消息中有一个字段changed允许 DDP 清除文档中的字段,但我无法从文档中弄清楚(https://github.com/meteor/meteor/blob/devel/packages/ ddp/DDP.md ) 如何从数组中删除元素。