gpt4 book ai didi

asp.net-mvc - SignalR 从 Controller 获取用户 ID

转载 作者:行者123 更新时间:2023-12-02 07:20:18 25 4
gpt4 key购买 nike

我有一个问题,如何从应用程序 Controller 获取 userId?我看到了很多示例,如何从 Hubs 获取它。但我不知道如何以其他方式从 Controller 调用集线器

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();

在上下文中我没有任何 ID。

我看到了这样的示例,在这里我可以调用上下文并获取 UserId,但这仅适用于 Hub。

var name = context.User.Identity.Name;

我知道我可以做这样的事情:

    public class MyHub : Hub
{
public void Send(string userId, string message)
{
Clients.User(userId).send(message);
}
}

但我必须从 Controller 调用集线器。

感谢帮助

最佳答案

我可以建议一种稍微不同的方法吗?一般来说,从信号器上下文外部刺入集线器的效果并不好,或者至少会让事情变得更加复杂。

您可以让 Controller 充当集线器本身的客户端,并通过集线器向 Controller 公开您需要的信息。您所需要的只是 SignalR Desktop Client package 。虽然它增加了开销,但您将拥有一种更加合规的数据检索方式,并且好处是可以很好地分离关注点。

这是一个similar question我回复了。 HTH。

关于asp.net-mvc - SignalR 从 Controller 获取用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34254845/

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