gpt4 book ai didi

javascript - 信号器框架何时调用 Signalr IUserIdProvider 的方法 GetUserId

转载 作者:行者123 更新时间:2023-12-03 11:45:30 30 4
gpt4 key购买 nike

当我们有一个自定义的 IUserIdProvider 时,SignalR 框架何时调用 GetUserId 方法,如下所示:

public class RealTimeNotificationsUserIdProvider : IUserIdProvider
{
public string GetUserId(IRequest request)
{
return request.QueryString["userId"];
}
}

ConnectionId 到 UserId 映射如何以及何时发生,以及以下方法如何工作:

 Clients.User("1").notify(notificationsJson);

用户是否必须经过身份验证才能正常工作?

最佳答案

用户无需经过身份验证即可使自定义 IUserIdProvider 正常工作。

但是,如果用户已通过身份验证,并且您没有在 SignalR 的 DependencyResolver 中将默认的 IUserIdProvider 替换为您自己的 IUserIdProvider,则客户端的用户 ID 将等于其 IPrincipal.Identity.Name

客户端的连接 ID 和用户 ID 之间没有精确的映射,但是当客户端使用 SignalR 连接时,它将在内部建立订阅以接收发送到其连接 ID 和用户 ID 的消息。每个 SignalR 连接建立时都会调用 IUserIdProvider.GetUserId,以便 SignalR 可以设置订阅。

关于javascript - 信号器框架何时调用 Signalr IUserIdProvider 的方法 GetUserId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072998/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com