2016-04-18 13 views
0

ユーザーの接続されているすべてのクライアントをグループに追加する必要があります。 は今、私はグループに現在のClientIDを追加することで、このコードを認識しています:私の場合はグループに接続しているすべてのクライアントをグループに追加する

public void JoinGroup(string groupName) 
{ 
    this.Groups.Add(this.Context.ConnectionId, groupName); 
} 

私は、ユーザーのユーザーIDを持っていると私の要件は、そのユーザのすべての接続を見つけることであるので、I私の希望するグループにこれらの接続をすべて追加できます。同じことをするのを手伝ってもらえますか?

答えて

0

私はこれを次のように実装します: ログインに成功すると、クライアントはそれをuserIDに渡してハブとの接続を再確立します。 ハブユーザーが関連グループに追加されます。ログイン

function login() { 

$.connection.hub.stop(); 

var data = { 
    UN: $('#tBxUN').val(), 
    PW: $('#tBxPW').val(), 

}; 
$.ajax({ 
    type: 'POST', 
    url: '/api/Auth/login', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.stringify(data), 
    success: funcSuccess, 
    error: funcFail, 
}); 

のための要求を送信するために、AJAXを使用していると仮定すると例えば は、ログインに成功した場合の応答としてユーザー名を取得します(またはログインの要求を送信しながら、地元varialbleにユーザ名を保存します)。ハブの

function funcSuccess(response) { 
    if (response != "login failed") { 
     $.connection.hub.start(); 
     $.connection.hub.start().done(function() { 
      // Call server method to add to group. 
      conn.server.addToGroup(response); 
    } 
}; 
function funcFail() { 
    alert("LogIn Failed") 
};}; 

私はこの

Public Sub addToGroup(ByVal UserName As String) 
    Dim connId = Context.ConnectionId 
    Dim UN = UserName 
    Dim Grp = "MyGroup" 
    If UN = "xxx" Then 
     Groups.Add(connId, Grp) 
    End If 
End Sub 
のようなものを持っています
関連する問題