2016-03-25 72 views
1

我試圖複製流星和minimongo完成的延遲補償。例如,要在客戶端上創建一個id,然後在調用該方法之後在服務器上創建相同的id,以便客戶端可以在不等待服務器響應的情況下更新UI。流星隨機包vs randomSeed

爲此,我需要在客戶端和服務器上生成相同的標識。

所以,流星,如果我做的:Random.createWithSeeds( 'ABC')的ID()

我總是得到: WKrBPwCSbzNHmhacn

但是,如果我從外部應用程序連接,在使用ddp客戶端的metor之外: self.send({msg:'method',id:id,randomSeed:'abc',method:name,params:params});

我得到一個不同的Id。它是可重複的,但與Random生成的不一樣。爲什麼?

我聽不懂。他們是否使用不同的generationId算法?我使用

套餐: 在流星:https://atmospherejs.com/meteor/random 在外部客戶端(流星外):random.js

回答

0

https://github.com/eddflrs/meteor-ddp +源代碼,這可能不是一個完整的答案(我還在找過),但你使用Random.createWithSeeds的方式應爲:

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

也許一個編輯可能會澄清createWithSeeds('abc')應該返回你叫.id()對象 多次。我從來沒有嘗試過從另一個ddp客戶端傳遞種子,但我會告訴你我什麼時候做