流星随机包vs随机种子

Meteor Random package vs randomSeed

本文关键字:随机 种子 vs 流星      更新时间:2023-09-26

我正在尝试复制Meteor和minimongo所做的延迟补偿。例如,在客户端上创建一个id,然后在调用方法后在服务器上创建相同的id,这样客户端就可以在不等待服务器响应的情况下更新UI。

为此,我需要在客户端和服务器上生成相同的Id。

所以,在流星中,如果我这样做:Random.createWithSeeds('abc').id()

我总是得到:WKrBPwCSbzNHmhacn

但如果我从外部应用程序连接,则在metor之外使用ddp客户端:self.send({msg:'method',id:id,randomSeed:'abc',method:name,params:params})

我得到了一个不同的Id。它是可重复的,但与Random生成的Id不同。为什么?

我无法理解。他们是否使用了不同的generationId算法?

我正在使用的程序包:关于流星:https://atmospherejs.com/meteor/random在外部客户端(Meteor外部):https://github.com/eddflrs/meteor-ddp+random.js 的源代码

这可能不是一个完整的答案(我也在寻找),但您使用Random.createWithSeeds的方式应该是:

> let generator = Random.createWithSeeds('abc')
> generator.id()
'WKrBPwCSbzNHmhacn'
> generator.id()
'h6iLWkdEfZ7wXWpPQ'

也许编辑可以澄清createWithSeeds('abc')应该返回您多次调用.id()的对象。不过,我从未尝试过从另一个ddp客户端传递种子,当我执行

时,我会通知您