gpt4 book ai didi

c# - 无法通过 SignalR Hub 访问 session 信息。是我的设计错了吗?

转载 作者:IT王子 更新时间:2023-10-29 04:47:28 42 4
gpt4 key购买 nike

我刚刚发现您无法访问 SignalR Hub 中的当前 session 。

简化我的场景:我试着写一段聊天。

当前用户的名称保存在 session 中。

我使用 SignalR 更新(一组连接)每条新消息。

现在我发现我无法通过中心访问当前用户的名称。

我想可能有一些变通办法,但我的设计实现是错误的吗?

我不应该为此目的使用 SignalR 吗?或者我不应该以这种方式使用 Session 吗?

最佳答案

您不应将 Session 与 SignalR 一起使用(参见 SignalR doesn't use Session on server )。您可以通过连接 ID 来识别逻辑连接,您可以 map to user names .

潜在的问题是access to SessionState is serialized in ASP.NET以确保状态一致性,因此对集线器的每个请求都会阻止其他请求。过去,可以通过设置 EnableSessionstate to read-only 来限制只读访问(我假设(但无法确认,因为要点已经消失),这可以防止我描述的锁定问题),但是 support for this was dropped .另见 various other places SignalR 团队在其中发表了类似的声明。最后:官方有说法documentation关于 HTTPContext.Current.Session

关于c# - 无法通过 SignalR Hub 访问 session 信息。是我的设计错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522477/

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