临时游戏室的松散用户创建(无帐户,无密码)

时间:2017-01-23 09:11:32

标签: meteor meteor-blaze meteor-accounts

我正在尝试创建一个简单的游戏,其中为游戏会话生成房间并在游戏结束后销毁。我想让用户加入这个房间,只需输入一个昵称即可玩游戏。

我是否需要使用meteor用户帐户,或者是否有更简单的方法来执行此操作,因为我不需要任何身份验证或密码。

我正在考虑创建一个玩家集合并在他们点击加入房间时插入昵称,但我不知道如何跟踪他是谁“或者如果他们断开连接而跟踪他们必须重新加入。

但是如果我要使用用户帐户,我不确定如何自定义它,这样可以轻松创建一个随意/松散的用户,并且可能在没有任何密码或电子邮件等游戏会话后被销毁。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以使用一个集合,但正如您所说,您仍然需要跟踪用户的ID,因此需要付出一些努力。

就个人而言,我会使用Meteor账户系统,使用accounts-token包:

https://atmospherejs.com/andrei/accounts-token

您可以在服务器上生成令牌,然后将用户登录。他们不需要知道他们已登录。

使用Meteor的帐户系统在跟踪用户方面有很多优势,如果在以后阶段你确实希望人们使用帐户密码,帐户-facebook等登录,你不会需要重组你的应用

答案 1 :(得分:0)

您不需要使用Meteor的帐户系统。

只需创建一个Rooms集合,该集合中的每个文档都将是#34;游戏室,"或者你想打电话给它。然后在里面添加一个"玩家"键入并存储所有玩家或任何你需要的玩家($pull离开游戏的玩家,加入的$push玩家。当游戏结束时,您可以通过其_id字段完全删除该MongoDB文档。

类似的东西:

    db.rooms = {
    _id: xzu90udfmd,
    players: [
    {
    tempUsername: "username1",
    tempWhatever: "whatever",
    token: 3zz97hrnw
    }, {
    tempUsername: "username2",
    tempWhatever: "whatever",
    token: 3zz97hrnw
    }, {
    tempUsername: "username3",
    tempWhatever: "whatever",
    token: 3zz97hrnw
    }
    ]
    };

然后,您可以在单个用户对象中添加所有自定义,也可以在可以应用于整个游戏室的外部添加自定义。使用React,这样的事情会非常容易。