Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么决定信号器连接ID以及如何手动设置_C#_Connection_Signalr - Fatal编程技术网

C# 什么决定信号器连接ID以及如何手动设置

C# 什么决定信号器连接ID以及如何手动设置,c#,connection,signalr,C#,Connection,Signalr,我在玩信号器,想知道信号器是如何创建连接ID的这是基于我的IP地址、我连接的设备还是其他什么?以及是否可以手动设置此ID。假设我有一个用户数据库,我给它一个唯一的号码,我能用这个号码作为连接ID吗 信号器连接Id是生成的guid。如果您希望以更有意义的方式使用数据以用户为目标,我发现通过客户端连接将一些信息传递给signalr hub非常有用,例如用户Id和数据库中的一些其他数据,并根据您提供的信息创建一个组。如果您试图用自己的标识符隔离用户,那么它应该是1:1映射 您可以通过在集线器中重写On

我在玩信号器,想知道信号器是如何创建连接ID的这是基于我的IP地址、我连接的设备还是其他什么?以及是否可以手动设置此ID。假设我有一个用户数据库,我给它一个唯一的号码,我能用这个号码作为连接ID吗


信号器连接Id是生成的guid。如果您希望以更有意义的方式使用数据以用户为目标,我发现通过客户端连接将一些信息传递给signalr hub非常有用,例如用户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();
}