Я реализую его следующим образом: После успешного входа клиент восстановит соединение с 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