gpt4 book ai didi

Meteor DDP - "ready"和 "update"消息说明

转载 作者:行者123 更新时间:2023-12-02 17:44:08 25 4
gpt4 key购买 nike

我目前正在根据此页面上提供的规范实现 DDP 客户端: https://github.com/meteor/meteor/blob/master/packages/livedata/DDP.md

我只是对称为“就绪”和“更新”的两种方法类型有疑问。

根据规范,让我们从“准备就绪”开始:

When one or more subscriptions have finished sending their initial batch of data, the server will send a ready message with their IDs.

这样做意味着我们可以有几个“添加”的消息从服务器直到整个集合被完全传送到客户端。我们应该将其存储在一个临时位置,然后在公开之前等待“就绪”信号量?即在真实收藏中?

关于远程过程调用的相同问题。我是否应该将结果存储在一个临时集合中,并且只在收到“更新”消息后才返回(处理)结果?

这部分是晦涩的

Once the server has finished sending the client all the relevant data messages based on this procedure call, the server should send an updated message to the client with this method's ID.

“应该”,所以如果我确实依赖它但什么也没有,我就会陷入困境?

最佳答案

We should store this in a temporary place to then wait for the "ready" semaphore prior to make it public ? i.e. in the real collection ?

标准的 Meteor JavaScript 客户端使添加的文档在客户端集合中可用,因为它们来自服务器。因此,例如,如果集合正在网页上显示,并且 100 个文档中的 5 个已到达,则用户将能够看到这 5 个文档。

当订阅“就绪”消息到达时,客户端上的订阅被标记为“就绪”,如果客户端正在做一些需要等待所有数据到达的事情,则可以使用它。

是否要在客户端中等待所有数据到达后再公开由您决定……这取决于您对客户端所做的事情以及是否要在文件到达时显示或不是。

"Should", so I'm stuck if I do rely on it but nothing ?

Meteor 服务器确实发送“更新”消息,因此您可以信赖它。

The same question regarding the remote procedure calls. Should I store the result in a temporary collection and only return (process) the result once the "updated" message is received ?

进行方法调用有两种结果:方法返回的返回值(或错误)(“结果”消息),以及方法调用可能已插入/更新/删除的文档(“已更新”消息)。您想要听哪一个取决于您:知道何时收到来自方法调用的所有文档更改对您来说很重要,还是您只想要方法返回值。

Meteor 客户端使用“更新”消息来执行“延迟补偿”:当客户端更改本地文档时,更改会立即应用到本地文档(并且更改对用户可见)。 .. 假设更改可能会被服务器接受。然后客户端进行方法调用请求更改,并等待从服务器发送更新的文档(如果被接受,则可能包括更改,如果被拒绝,则可能不包含更改)。当收到“更新”消息时,本地更改将被丢弃并由来自服务器的实际更新代替。如果您不在自己的客户端中进行延迟补偿,那么您可能不会关心“更新”消息。

关于Meteor DDP - "ready"和 "update"消息说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com