0

でウェブサイトを開発したいASP.NET Web Forms。この Web サイトでは、任意の 2 人のオンライン ユーザーを指定された時間(30 秒と仮定)ランダムに接続したいと考えています。

ユーザーを一時テーブルに追加し(オンラインユーザーを追跡するため)、ログインしたらすぐに乱数を割り当て、ログアウト時に一時テーブルから削除することを考えています。

問題:

  1. セッションの有効期限が切れたとき、またはブラウザーを閉じたときに、テーブルからユーザーを削除する方法がわかりません。
  2. 2 人のオンライン ユーザーを (omegle のように)ランダムに接続する方法がわかりません。ユーザー Aユーザー Cが接続されている場合、ユーザー Bは接続できないはずです。User A and User C

助言がありますか?

4

1 に答える 1

0

サーバーに「ユーザー x は現在ユーザー y と接続しています」と通知する Ajax リクエストを 10 秒ごとに送信できます。ユーザーを含むテーブルでは、各ユーザーが最後に「私はまだそこにいます」という要求を送信しlastUpdateた時刻を現在の時刻に更新して保存connected1ます。ユーザーがオンラインで接続されていない場合は、更新してゼロlastUpdateに設定connectedします。

テーブル構造は次のとおりです。

users
    userId | lastUpdate | connected

connections
    userA | userB

が 20 秒以上前の場合lastUpdate、このユーザーとの接続はおそらくもう存在していません。

ユーザーをランダムに接続する場合、オンラインのユーザー (つまりlastUpdate、20 秒未満のユーザー) のみを選択します。

connected = 02 人のユーザーを接続する場合、現在接続されていない ( ) およびオンラインである ( lastUpdate20 秒以内)ユーザーのみを選択します。

于 2013-01-09T09:03:33.557 に答える