我想在ASP.NET Web Forms
开发一个网站。在这个网站上,我想在指定时间内随机连接任意两个在线用户(假设30秒)。
我正在考虑将用户添加到临时表中(以跟踪在线用户)_并在登录时为其分配一个随机数,并在注销时从临时表中删除它们。
问题:
User A and User C
任何建议?
答案 0 :(得分:0)
您可以每10秒发送一次Ajax请求,通知服务器“用户x当前与用户y连接”。在包含用户的表格中,您可以通过将lastUpdate
更新为connected
到1
的当前时间来存储每个用户发送最后一次“我仍在那里”请求的时间。当用户在线但未连接时,您更新lastUpdate
并将connected
设置为零。
表结构如下:
users
userId | lastUpdate | connected
connections
userA | userB
lastUpdate
超过20年前,与该用户的关系很可能不再存在。
当您随机连接用户时,您将只选择在线用户(即lastUpdate
少于20年前的用户)。
连接两个用户时,您只选择当前未连接的用户(connected = 0
)和在线人员(lastUpdate
不超过20年前)。