私は現在、Web サイトの訪問者とのリアルタイムのやり取りを可能にするアプリケーションのスケッチを作成中です。
したがって、2 つの異なる「ユーザー タイプ」があります。
- 未登録ユーザー: これらは訪問者です
- 登録済みユーザー: これらは (カスタム) ASP.NET MVC メンバーシップを持っています
現在、「UserNames」と ConnectionIds を DB に永続化しているので、将来のある時点で自由にスケーリングできます。これを行うには、ハブ内から Context.Identiy.User.UserName にアクセスし、DB に既存の「セッション」を照会します。
問題は次のとおりです。
- 2 種類の「ユーザー」が必要です
- 1 つは、動的に GUID を生成したいということです。これらは訪問者であり、一定量の非アクティブ状態が続くとデータベースから削除されます。
- これらは管理者であり、適切な ID が Context オブジェクトに関連付けられています。
では、SignalR から「セッション」にアクセスするにはどうすればよいでしょうか。これは実際にはセッションではありません。MVC コントローラーへの最初の要求ごとに Cookie から SessionId を取得する必要があるだけです。私ができる必要があるのは、次のことだけです。
- 自動生成された「SessionId」を用意して、リクエスト全体で訪問者を永続化するために使用できます
- より「拡張された」ID を持つ: UserName の代わりに UserId を使用したい
とにかく、これが理にかなっていることを願っていますが、不明な点があれば参加してください。