我会这样实现它:
成功登录后,客户端将重新建立与 Hub 的连接并传递用户 ID。
集线器用户将被添加到相关组。
例如假设您使用 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,
});
在成功登录的情况下获取用户名作为响应,(或在发送登录请求时将用户名保存在本地变量中)。
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")
};};
在 Hub 上我会有这样的东西
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