在我的 meteor 应用程序中,我需要能够捕获某种形式的唯一元素(会话 ID/客户端 ID 等),以帮助跟踪用户所做的操作。此时,我没有使用帐户包,所以我只是在寻找一种方法来捕获某种客户端唯一的数据元素,我可以在数据模型中使用它来跟踪每个唯一用户的活动/步骤。我可以使用什么应用程序/浏览器/会话元素来代替这个唯一的 id 字符串?
这是你要找的?
您可以使用Random.id()
来获取唯一的 id 字符串。我已经多次使用它来跟踪临时对象,它非常有用。还有其他Random
方法也可能派上用场。
尝试使用的是DDP连接的会话ID Meteor.connection._lastSessionId
。但要小心,因为它基本上是 websocket 会话。因此,当客户端打开新选项卡或刷新页面时,此会话 ID 将有所不同。
如果要在浏览器中保留相同的会话,可以尝试实现自己的基于本地存储的会话。
一些想法:与其使用 Meteor 的Random.id()
,不如将新文档插入 Mongo 集合,这样您就可以保证不会发生冲突。因为Random.id()
总是有很小的机会返回重复项。这是一个正确的假设吗?
流星文档说likely to be unique
,即不保证是唯一的。http://docs.meteor.com/#/full/random
将文档的_id存储在Session.set()
调用中,以用作您的匿名用户ID,即 Session.get("anonUserId")
完成后,您可以将其删除以保留集合修剪。