如何实时限制按钮的点击次数?

时间:2013-10-27 14:26:29

标签: node.js real-time comet

我最近有一个问题:我们如何才能实时实现按钮点击的限制? 例如,按钮上有10次点击限制。例如Bob点击了按钮,然后Bob和Rob看到有9次点击。在第10次按下后,按钮被禁用。

你会建议什么?

1 个答案:

答案 0 :(得分:0)

  • 使用数据库跟踪点击次数
    • 根据您的功能需求,您可能希望处于频谱的“直接一致性”端与“最终一致性”之间,因此要么使用带有约束和事务的传统关系数据库,要么将点击存储在单个mongodb文档中可以自动更新。
  • MongoDB您可以设置ClickTrackers集合和文档,如:

{
  button: "reserveSeat":
  clickedBy: [userId1, userId2]
}
  • 然后您可以使用$addToSet
  • redis设置可能运行良好(假设您允许每个用户单击一次)
  • 您需要一些实时库来帮助您将更新推送到已连接的浏览器。也许是meteor.js或socket.io.js
  • 没有办法避免在显示用户剩下1次点击,其他人点击它,然后第一个用户在点击次数减少到0之前点击它(如购买流行音乐会门票,例如),所以你必须处理它并为它编写测试,并有一个UI向用户说“哎呀没有点击,实际上,抱歉”

希望这会让你开始,但是因为它是你的问题不遵循stackoverflow指南,因为它“太宽泛”并且你没有发布你尝试过的任何代码,所以去尝试一下并回来一些代码片段。