检测并连接在线用户

时间:2013-01-09 08:54:53

标签: asp.net sql-server vb.net login webforms

我想在ASP.NET Web Forms开发一个网站。在这个网站上,我想在指定时间内随机连接任意两个在线用户(假设30秒)

我正在考虑将用户添加到临时表中(以跟踪在线用户)_并在登录时为其分配一个随机数,并在注销时从临时表中删除它们。

问题:

  1. 我不知道如何在会话过期或浏览器关闭时从表中删除用户。
  2. 我不确定如何随机连接两个在线用户(如在omegle中)。当用户A 用户C 连接用户B 时,无法连接到 User A and User C
  3. 任何建议?

1 个答案:

答案 0 :(得分:0)

您可以每10秒发送一次Ajax请求,通知服务器“用户x当前与用户y连接”。在包含用户的表格中,您可以通过将lastUpdate更新为connected1的当前时间来存储每个用户发送最后一次“我仍在那里”请求的时间。当用户在线但未连接时,您更新lastUpdate并将connected设置为零。

表结构如下:

users
    userId | lastUpdate | connected

connections
    userA | userB

lastUpdate超过20年前,与该用户的关系很可能不再存在。

当您随机连接用户时,您将只选择在线用户(即lastUpdate少于20年前的用户)。

连接两个用户时,您只选择当前未连接的用户(connected = 0)和在线人员(lastUpdate不超过20年前)。