gpt4 book ai didi

c# - 什么决定了 SignalR connectionID 以及如何手动设置它

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:22 24 4
gpt4 key购买 nike

我正在玩弄 SignalR 并在徘徊 SignalR 如何创建 connectionID 这是基于我的 IP 地址、我连接的设备还是其他?并且是否可以手动设置此 ID。假设我有一个包含用户的数据库,我给它一个唯一的编号,我可以将该编号用作 connectionID 吗?

亲切的问候

最佳答案

SignalR 连接 ID 是生成的 guid。如果您想以更有意义的方式使用您的数据来定位用户,我发现通过您的客户端连接传递一些东西很有用,例如用户 ID 和数据库中的一些其他数据,以及到信号器中心并根据您提供的内容创建一个组。如果您尝试使用您自己的标识符来隔离用户,它应该是 1:1 映射。

您可以通过在您的集线器中覆盖 OnConnected() 并实现类似这样的操作来实现这一点,这会将生成的 ID 映射到您自己的 ID。然后,您可以根据自己的喜好定位这些组(记住,1:1,模拟 ID 选择器)。


public override Task OnConnected()
{
var user = new User()
{
Id = Context.QueryString["Id"]
Name = Context.QueryString["Name"]
}

Groups.Add(Context.ConnectionId, user.Id);

return base.OnConnected();
}

Mapping SignalR Users to Connections 也进行了更详细的介绍。

关于c# - 什么决定了 SignalR connectionID 以及如何手动设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303354/

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