2016-04-18 4 views
0

Мне нужно добавить все подключенные клиенты пользователя к группе. Сейчас я знаю, этот код, который должен добавить текущую ClientID к группе:Добавление всех подключенных клиентов пользователя к группе

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

В моем случае у меня есть идентификатор пользователя пользователя и мое требование, чтобы найти все соединения с пользователем, так что я может добавить все эти соединения в нужную группу. Можете ли вы помочь мне сделать то же самое?

ответ

0

Я реализую его следующим образом: После успешного входа клиент восстановит соединение с Hub, передав ему идентификатор пользователя. Пользователь концентратора будет добавлен в соответствующую группу. Например если вы используете Ajax для отправки запроса для входа в систему

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, 
}); 

Получить имя пользователя, как ответ в случае успешного входа (или сохранить имя пользователя в локальной 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