meteor app:如何在不使用帐户的情况下获取唯一的会话/客户端ID

时间:2014-04-08 13:41:20

标签: javascript html5 meteor

在我的meteor应用程序中,我需要能够捕获某种形式的独特元素(会话ID /客户端ID等),以帮助跟踪用户所做的操作。此时,我没有使用帐户包,所以我只想找到一种方法来捕获某种客户端唯一的数据元素,我可以在数据模型中使用它来跟踪每个唯一用户的活动/步骤。 我可以用什么应用程序/浏览器/会话元素代替这个唯一的id字符串?

3 个答案:

答案 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")完成后,您可以删除它以保持集合修剪。