0

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

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

问题:

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

有什么建议么?

4

1 回答 1

0

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

表结构如下:

users
    userId | lastUpdate | connected

connections
    userA | userB

20lastUpdate多岁以前,与该用户的联系很可能不再存在。

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

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

于 2013-01-09T09:03:33.557 回答