服务器重置ID
一、说明
每个客户端在连接时,服务器都会为连接的客户端新分配一个唯一的ID。也就是说,在服务器中ID与SocketClient实例就是一一对应的。
二、配置初始ID策略
默认情况下服务器都会根据历史连接数量,为连接的客户端新分配ID。也就是说,第一个连接的,其ID就是1,以此类推。
当然我们可以自由的定义ID策略,只需要在Config配置中,配置SetGetDefaultNewID,自定义新ID来源即可。要求不和现连接的客户端ID重复。
下列示例,就是使用Guid作为初始ID。
.SetGetDefaultNewID(()=> { return new Guid().ToString(); })
三、创建能代表连接的ID
上述这种ID规范,是与连接信息没有任何关联的,这也就意味着,这种方式是无法关联SocketClient的。
但往往,有时候,我们希望,SocketClient的ID,能一定程度的代表一些信息。例如:以客户端的IP和端口,作为唯一ID。
那这时候,服务器可以订阅Connecting,然后,为新连接的SocketClient,设置与之有关联信息的ID。
m_service.Connecting = (client, e) =>
{
e.ID = $"{client.IP}:{client.Port}";
};//有客户端正在连接
提示
上述行为通过插件实现可能更加优雅。