我正在尝试创建一个简单的游戏,其中为游戏会话生成房间并在游戏结束后销毁。我想让用户加入这个房间,只需输入一个昵称即可玩游戏。
我是否需要使用meteor用户帐户,或者是否有更简单的方法来执行此操作,因为我不需要任何身份验证或密码。
我正在考虑创建一个玩家集合并在他们点击加入房间时插入昵称,但我不知道如何跟踪他是谁“或者如果他们断开连接而跟踪他们必须重新加入。
但是如果我要使用用户帐户,我不确定如何自定义它,这样可以轻松创建一个随意/松散的用户,并且可能在没有任何密码或电子邮件等游戏会话后被销毁。
提前致谢!
答案 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,这样的事情会非常容易。