私が取り組んでいるプロジェクトの SignalR を見ていますが、まさに私が望んでいるようです。しかし、私がまだ少し困惑しているのは、グループと参加です。
最初に実装のコンテキストを説明しようと思います。したがって、既存のシステム内のユーザーは、特定のトピックについて会議を開催したいと考え、特定の名前/識別子でルームを作成し、他のユーザーをそこに招待すると、基本的にプライベート チャット ルームのようになります。
したがって、私が仮定する手順は、ホストとしてルームを作成して参加し、ユーザーがクリックする必要がある招待状を送信して、どのルームに参加するかをサーバーに伝えることです。
ドキュメントから、誰かをグループに入れるためにフックできる Join および Disconnect メソッドがあることがわかりましたが、 Join にはクエリ文字列以外のコンテキストが関連付けられていないように見えるので、少し混乱していますJoin をトリガーするものについては、何百もの個室がある可能性があるため、オブジェクトをどの部屋に配置するかに関するコンテキストを提供するオブジェクトを渡すクライアントで手動でトリガーされるメソッドになると予想されます。
では、Join メソッドにコンテキストを与え、切断メソッドにコンテキストを与えるにはどうすればよいでしょうか。そうすることで、手動でトリガーされていないかのように、参加を要求しているルームを彼らが知ることができます。クエリ文字列を設定するにはどうすればよいでしょうか。カスタム オブジェクトを送信しません。すなわち
public Task Join()
{
var groupName = Context.QueryString["some-room-identifier"];
return Groups.Add(Context.ConnectionId, groupName);
}
対
public Task Join(string groupName)
{
return Groups.Add(Context.ConnectionId, groupName);
}
それで、何かが足りないのでしょうか、それとも、参加しているユーザーにコンテキストを提供して、最初に適切な場所に配置する方法はありますか?