2013-01-09 83 views
0

我想開發一個網站ASP.NET Web Forms。在這個網站我想隨機連接任意兩個在線用戶指定時間(假設30秒)檢測並連接在線用戶

我正在考慮將用戶添加到臨時表中_(爲了保留在線用戶的軌跡)並且在他們登錄後立即爲他們指定一個隨機數,並在註銷時將其從臨時表中刪除。

問題:

  1. 我不知道如何從會話過期表或在瀏覽器關閉刪除用戶。
  2. 我不知道如何隨機連接兩個在線用戶(如在omegle)。當用戶A用戶C連接用戶B不應該是能夠連接到User A and User C

有什麼建議?

回答

0

您可以每隔10秒發送一次Ajax請求,通知服務器「用戶x當前與用戶y連接」。在包含用戶的表格中,當每個用戶通過將lastUpdate更新爲當前時間connected1發送其最後一個「我仍在那裏」請求時,您可以存儲該表格。當用戶在線但未連接時,更新lastUpdate並將connected設置爲零。

表結構如下:

users 
    userId | lastUpdate | connected 

connections 
    userA | userB 

lastUpdate小於20秒多前,與該用戶的連接是最有可能不是活的了。

當隨機連接用戶時,您將只選擇在線用戶(即其lastUpdate小於20年前)。

連接兩個用戶時,只能選擇當前沒有連接的用戶(connected = 0)和誰在線(lastUpdate不超過20秒前)。

+0

我有無限數量的用戶,不只是兩個用戶 – user1593175

+0

你說你想連接兩個用戶。你想連接三個或更多的用戶嗎? – frececroka

+0

我的意思是一對一聊天......但在線用戶的數量是無限的。 – user1593175