0

問題: クエリ文字列に格納された変数に基づいて動的に作成されるグループがあり、接続時にクライアントから送信されます.start()

  $.connection.hub.qs = "live=" + eventID;
  $.connection.hub.start({ transport: 'longPolling' }).done(function (data) {}

5 秒ごとにクライアントに更新を送信しています。これらのグループは、一定の時間「生きています」。例えばライブベッティングゲーム。したがって、すべてのゲーム/試合はグループです。ゲームが終了したら、そのグループを削除し、そのグループ内のクライアントへの更新の送信を停止したいと思います (そのグループ内のクライアントを強制的に切断します)。何が起こるかというと、私はそのグループに新しいダナを送信せず、そのグループを無視するだけです:)、しかし、そのグループのクライアントはまだ保留中のリクエストを送信しています(ロングプーリングがトランスポートの場合)120秒ごとまたはそれ以下休息を取得しました(これは基本的にリクエストのタイムアウトです)。

可能な解決策:

  • connectionIDsいくつかの投稿を読んだ後、これらのグループ (対応する) を Hub クラスの静的フィールドまたはデータ ストアとしてメモリに保持することで、これを実行できると結論付けました。そして、いくつかの試合が終了したらconnectionIDs、そのグループから全員を削除する必要があります.

  • たぶん、サーバーで試合が終了したときに呼び出されるもう1つのクライアント関数を定義できます(クライアントと言うときは、JSクライアントが明確であると思います)。何かのようなもの。

    var myHubProxy = $.connection.myHub
       myHubProxy.client.stopClient = function() {
       $.connection.hub.stop();
    };
    

どんな助けや提案も大歓迎です。ありがとう。

4

1 に答える 1