たとえば、 connection.idの代わりにユーザー名を追加できますか。それは機能しますか?ConnectionId は常に変更されるため、ConnectionId を介してユーザーに通知を送信できないため、これを求めていますか?
Groups.Add("my_username", "mygroup1);
たとえば、 connection.idの代わりにユーザー名を追加できますか。それは機能しますか?ConnectionId は常に変更されるため、ConnectionId を介してユーザーに通知を送信できないため、これを求めていますか?
Groups.Add("my_username", "mygroup1);
いいえ、できません。ConnectionID を使用する必要があります。ただし、次のことはできます。
接続 ID にマップされたユーザーのリストをハブ ストアに保存します。
static ConcurrentDictionary<string, User> _users = new ConcurrentDictionary<string, User>();
クライアント接続が開始された後、次のようなメソッドを呼び出すことができます。
myHub.server.createUser("MyUsername");
もちろん、サーバー上には次のものがあります。
public void createUser(string userName)
{
// You'd create a User class that had both of the following properties
var user = new User
{
UserName = userName,
ConnectionID = Context.ConnectionId
};
_users.TryAdd(user.ConnectionID, user);
}
そのため、接続 ID を介してユーザーを検索する場合は常に、_users 辞書を介してユーザー名のコンテキストが保持されます。
注: このコードは signalr 1.0 alpha + 経由で機能します