问题标签 [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 投票
0 回答
234 浏览

meteor - Meteor 何时以及多少次重试连接到失败的 DDP 连接?

假设我有一个与工作人员的 DDP 连接:

如果将来与该工作人员的连接突然失败,Meteor 会重试多少次以解决连接问题?它什么时候这样做?

0 投票
2 回答
1871 浏览

javascript - Meteor - 为什么我应该尽可能使用 this.userId 而不是 Meteor.userId() ?

从David Glasser 在 GitHub 问题中的评论来看:

this.userId是主要的 API,Meteor.userId()对于刚接触 JavaScript 的用户来说是语法糖,他们可能还不了解成功使用它的细节

似乎我们应该this.userId尽可能使用(例如在方法函数内部,您可以同时使用两者),并且只使用Meteor.userId()内部发布函数。如果这个假设是正确的,为什么

(参考代码的相关位也会有所帮助,我似乎找不到它)

0 投票
1 回答
53 浏览

java - 如何不在流星中发布已经发送到客户端的数据?

我正在使用 android-ddp 库开发一个 android 客户端(聊天应用程序)。问题是,每次我连接到流星并订阅数据集时,所有记录都会被发布。如何停止在每个新连接上发送相同的记录并仅获取未发布的记录。

0 投票
1 回答
122 浏览

meteor - Meteor 1.2:通过 DDP 在 2 个应用程序之间共享 Meteor.users

假设我有两个完全不同的 Web 应用程序。A作为我的主要应用程序B,另一个已经很重的分叉应用程序。我想Meteor.users在他们两个之间共享我的收藏,以便人们可以(自动)登录并在两个应用程序之间导航而不会出现任何摩擦,无论它们是在主应用程序上还是在另一个应用程序上。

到目前为止,我尝试采用 DDP 方式:

借助 Meteor 的魔法,我现在可以使用我的A帐户登录B,似乎我也可以B通过网络控制台更新我的文档。一切似乎都很棒。我的问题也是B一个真正的应用程序,我在那里有一些服务器端逻辑,它似乎是我的用户集合,Meteor.user()等等undefined。我也需要从服务器访问这些用户并修改集合。

我是否有权使用 DDP,还是应该研究类似arunoda:meteor-cluster或其他任何解决方案?是因为 1.2 版本的一些更改吗?

0 投票
1 回答
1362 浏览

meteor - 在浏览器控制台中查看所有集合

我想知道如何在浏览器中列出 Meteor 应用程序的所有集合。

基本上,我需要使用未记录的 DDP 连接到某个主机,并且需要知道所有集合名称。

我已经尝试过类似的东西Meteor.collectionsMeteor.default_connection.collections但它们都不起作用。有什么建议么?

0 投票
1 回答
72 浏览

mongodb - Meteor 1.2 和 MongoDB 的可扩展性

这是关于 Meteor 和 MongoDB 可扩展性的一般架构问题。

  • 我了解 Meteor 客户端可以查询数据库并接收对查询的持续和自动更新。

  • 两者之间有开放的联系吗?它是用 DDP 实现的吗?

  • 在 Meteor 服务器端,每个客户端都有一个开放的 MongoDB连接吗?

0 投票
0 回答
531 浏览

javascript - 无法让 Meteor/Cordova 使用远程服务器进行 DDP

几天来,我一直在尝试解决以下问题,这让我非常抓狂。

我有一个 (1.2) 流星应用程序,部署在http://some.application.com:3000. 它工作得很好,并且做了它应该做的事情。该应用程序使用了几个包,我认为与此问题相关的是autoupdateaccounts(它加载了自己的一堆东西)。

我们的指令是把这个 web 应用程序变成一个 android 应用程序,我们被告知流星可以“很容易地”做到这一点。从表面上看,这似乎是一个简单的案例meteor run android-device --mobile-server http://some.application.com:3000 --settings settings.json --verbose,但这并没有达到我的预期。

Meteor 决定10.0.2.2(无论出于何种原因)进行 DDP 连接,无论我设置什么环境变量,我最终都会遇到相同的情况。

重要的是要注意,该应用程序并未在DDP.connect(url)任何地方使用该方法 [ docs ] 编写,因此一切都依赖于主要的 DDP 连接(我怀疑这可能是我们问题的更大原因之一)。

作为记录,这是我的启动脚本。我非常绝望并添加了很多很多环境变量,并且没有任何组合的运气。

在本地、移动设备或台式机上运行它(通过localhost:3000端口转发或任何其他内部 IP ( 10.x.x.x, 192.x.x.x) 运行良好。它甚至可以与远程 AWS、Queue 和 DB 一起使用。

根据所有文档,--mobile-server交换机应该解决问题。它没有。我已经尝试过使用和不使用=, 用引号括起来的所有可能的定义方式。

查看<head>我的文档,我看到以下代码被注入

该字符串的 UrlDecoded 版本如下

这很奇怪,因为我在任何地方都没有 localhost 条目。

启动应用程序告诉我:App running at: http://site.some.application.com,但在网络检查器中没有建立连接。

浏览代码告诉我,唯一__meteor_runtime_config__提到的地方是在autoupdate包中。

进一步调查将我引向与此修复相关的问题#3815 ,但在我实施它(对自动更新包的更改)之后,我仍然面临同样的问题(尽管热代码修复停止来自我的本地计算机)

更多的调查使我相信远程 DDP 服务器可以像这样更改,但不幸的是,该解决方案不适用于 Cordova。

我尝试了设置HTTP_PROXY,因为脚本中的“除非我们支持代理”的注释<head>让我相信这可能是一个快速修复,但我对此没有任何运气。

我尝试删除帐户包,但在这方面没有任何运气。

主要问题是否有任何建议的方法来允许 Cordova 包装的 Meteor 应用程序连接到任意服务器,并允许 DDP 连接到同一服务器?

帐户包是(最有可能)需要的。我认为自动更新并不重要,尽管它们确实有助于不必定期向各种应用商店发布代码。

我尝试过的事情:

  • 删除帐户包
  • 删除自动更新
  • 修改自动更新以指向远程 DDP
  • 使用remote-ddp
  • 强制__meteor_runtime_config__覆盖
  • 设置代理
  • 环境变量
  • 还有其他几千件东西

相关问题(追溯到 2015 年 1 月)是:

的内容.meteor/packages

versions如果您觉得有帮助,我可以提供我的文件内容。

TL;DR - 是否有任何建议的方法允许 Cordova 包装的 Meteor 应用程序连接到任意服务器,并允许 DDP 连接到相同的服务器?

任何有关此问题的帮助或指示将不胜感激。请让我知道您是否需要在这方面提供帮助的任何其他信息。

非常感谢

Github 上的问题

0 投票
2 回答
70 浏览

javascript - Meteor.http.call() 来自我的 app.meteor.com

我有一个应用程序,我在服务器端函数中使用 Meteor.http.call()。

这使用本地主机流星服务器工作:我将数据放回ret变量中。
我将应用程序部署到ruleoneinvesting.meteor.com,现在我使用相同的调用得到了这个错误:

没有帮助。

0 投票
1 回答
678 浏览

django - 如何使用 django-ddp

我正在使用 django 作为后端。在阅读有关流星的内容时,我发现了 django-ddp。我搜索了很多,但我没有得到 django-ddp 的用途。我知道您可以使用它来将流星连接到您的 django 后端,但是用例是什么?

客户端如何连接到 django 和/或流星?流星必须在同一台服务器上运行吗?http请求是如何处理的?

也许一个小例子可以帮助我得到这个。

对我来说很重要:我可以用它来结合 django 和流星的好处吗?

0 投票
0 回答
225 浏览

meteor - 同一数据库上不同服务器之间的流星和客户端到客户端通信

我已经将我的项目拆分为更小的微服务,共享相同的数据库,但在不同的服务器实例上运行。我正在尝试将来自服务器 A 客户端的消息传递给服务器 B 上的客户端。项目结构如下所示:

一个实际的例子是通知所有连接的客户端有一个新的帖子,而不会将新的帖子事件保存到数据库中。就我而言,存储这些信息并不重要,只是将它们显示给当前连接的客户端。

这甚至可能吗?