【发布时间】:2016-01-04 03:37:06
【问题描述】:
我正在尝试在 NodeJS 中创建一个队列系统,以便一次只有 20 个连接能够访问某个页面。现在,我使用shortid 和javascript localStorage(以存储他们的ID)为每个用户分配一个唯一的ID。我想给每个用户 1 分钟的时间来查看该内容,然后引导他们“重新排队”。如果他们必须等待,它会告诉他们“您将在 XX 分钟内连接”。
现在我的流程是使用http.globalAgent.maxSockets = 20; 只允许 20 人进入,但不允许我将他们路由到其他地方让他们等待。我的想法是建立一个关于人们“排队”顺序的数据库。然后当一个用户在 1 分钟后被踢出页面时,下一个“排队”的用户将被引入并在他们被踢出前 1 分钟给予。
我正在使用 MySQL 来存储队列。问题是我不确定如何在一分钟后完成启动某人并让他们“重新排队”的代码。有什么帮助吗?谢谢!
【问题讨论】:
-
目前尚不清楚您要控制什么。您是否试图控制有多少人可以同时查看一个页面?因为查看与
http.globalAgent.maxSockets无关,根本不是您的服务器可以直接控制的。查看常规网页的浏览器在查看时未连接到服务器。建立一个或多个连接来检索页面内容,然后在检索到页面内容后关闭连接。这在不同版本的 HTTP 中的工作方式略有不同。 -
为什么要使用 localStorage?一个 cookie 就足够了,并且具有更好的浏览器兼容性。
标签: javascript mysql node.js