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