问题标签 [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.
meteor - Meteor 何时以及多少次重试连接到失败的 DDP 连接?
假设我有一个与工作人员的 DDP 连接:
如果将来与该工作人员的连接突然失败,Meteor 会重试多少次以解决连接问题?它什么时候这样做?
javascript - Meteor - 为什么我应该尽可能使用 this.userId 而不是 Meteor.userId() ?
从David Glasser 在 GitHub 问题中的评论来看:
this.userId
是主要的 API,Meteor.userId()
对于刚接触 JavaScript 的用户来说是语法糖,他们可能还不了解成功使用它的细节
似乎我们应该this.userId
尽可能使用(例如在方法函数内部,您可以同时使用两者),并且只使用Meteor.userId()
内部发布函数。如果这个假设是正确的,为什么?
(参考代码的相关位也会有所帮助,我似乎找不到它)
java - 如何不在流星中发布已经发送到客户端的数据?
我正在使用 android-ddp 库开发一个 android 客户端(聊天应用程序)。问题是,每次我连接到流星并订阅数据集时,所有记录都会被发布。如何停止在每个新连接上发送相同的记录并仅获取未发布的记录。
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 版本的一些更改吗?
meteor - 在浏览器控制台中查看所有集合
我想知道如何在浏览器中列出 Meteor 应用程序的所有集合。
基本上,我需要使用未记录的 DDP 连接到某个主机,并且需要知道所有集合名称。
我已经尝试过类似的东西Meteor.collections
,Meteor.default_connection.collections
但它们都不起作用。有什么建议么?
mongodb - Meteor 1.2 和 MongoDB 的可扩展性
这是关于 Meteor 和 MongoDB 可扩展性的一般架构问题。
我了解 Meteor 客户端可以查询数据库并接收对查询的持续和自动更新。
两者之间有开放的联系吗?它是用 DDP 实现的吗?
在 Meteor 服务器端,每个客户端都有一个开放的 MongoDB连接吗?
javascript - 无法让 Meteor/Cordova 使用远程服务器进行 DDP
几天来,我一直在尝试解决以下问题,这让我非常抓狂。
我有一个 (1.2) 流星应用程序,部署在http://some.application.com:3000
. 它工作得很好,并且做了它应该做的事情。该应用程序使用了几个包,我认为与此问题相关的是autoupdate
包accounts
(它加载了自己的一堆东西)。
我们的指令是把这个 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 月)是:
- 如何设置 DDP_DEFAULT_CONNECTION_URL?#3852 - 显示连接远程流星服务器的困难,并涉及
autoupdate
包如何影响事物。 - Dont' start local server when using option --mobile-server #3727 - 这显示了
--mobile-server
成为10.0.2.2
- Meteor 移动版本没有改变 DDP_DEFAULT_CONNECTION_URL #4396 - 这显示了一个明显的修复,但这对我根本不起作用
- 能够将替代 DDP 连接传递给 autoupdate #3815 - 这显示了来自官方文档的混淆,并引导我找到
autoupdate
我之前链接的包“修复” - MOBILE_ROOT_URL 和 MOBILE_DDP_URL 在流星构建中被忽略#4581 - 这显示流星构建如何忽略这些环境变量
- Can't build mobile app with different DDP server #4412 - 这表明其他人遇到相同问题有困难,响应要求围绕该问题提供 PR
- Meteor Accounts 仅对 DDP 进行身份验证,而不是 HTTP #3390 - 这表明身份验证
meteor-accounts
只能通过 DDP 而不是 HTTP - 构建的应用程序无法连接到给定的 --server:他们一直无法连接#3698 - 这表明其他用户在 iOS 上遇到了同样的问题,尽管他们报告说连接到本地服务器成功,我也成功了,但是没有提到远程服务器的成功。修复似乎是通过流星部署到,
some-app.meteor.com
但这不是我们的选择。
的内容.meteor/packages
versions
如果您觉得有帮助,我可以提供我的文件内容。
TL;DR - 是否有任何建议的方法允许 Cordova 包装的 Meteor 应用程序连接到任意服务器,并允许 DDP 连接到相同的服务器?
任何有关此问题的帮助或指示将不胜感激。请让我知道您是否需要在这方面提供帮助的任何其他信息。
非常感谢
javascript - Meteor.http.call() 来自我的 app.meteor.com
我有一个应用程序,我在服务器端函数中使用 Meteor.http.call()。
这使用本地主机流星服务器工作:我将数据放回ret
变量中。
我将应用程序部署到ruleoneinvesting.meteor.com
,现在我使用相同的调用得到了这个错误:
这没有帮助。
django - 如何使用 django-ddp
我正在使用 django 作为后端。在阅读有关流星的内容时,我发现了 django-ddp。我搜索了很多,但我没有得到 django-ddp 的用途。我知道您可以使用它来将流星连接到您的 django 后端,但是用例是什么?
客户端如何连接到 django 和/或流星?流星必须在同一台服务器上运行吗?http请求是如何处理的?
也许一个小例子可以帮助我得到这个。
对我来说很重要:我可以用它来结合 django 和流星的好处吗?
meteor - 同一数据库上不同服务器之间的流星和客户端到客户端通信
我已经将我的项目拆分为更小的微服务,共享相同的数据库,但在不同的服务器实例上运行。我正在尝试将来自服务器 A 客户端的消息传递给服务器 B 上的客户端。项目结构如下所示:
一个实际的例子是通知所有连接的客户端有一个新的帖子,而不会将新的帖子事件保存到数据库中。就我而言,存储这些信息并不重要,只是将它们显示给当前连接的客户端。
这甚至可能吗?