我有一个Blazor Server应用程序,每个客户端都可以连接到选定的远程生产机器并读取其PLC的数据。用于PLC连接的dll要求每个客户端有一个单独的"dll";连接号";。相关PLC的连接将通过该设备编号建立,并且只要连接了客户端,它就应该是相同的。
我必须给每个新连接的客户端我的Blazor服务器应用程序,最可能的小连接号码。这意味着:如果第一客户端client-1连接;1〃;。第二客户端";2〃;第三客户端";3〃;,第四客户端";4〃;。如果这四个客户端在线并且当客户端-1注销时;1〃;。这意味着断开连接的客户端的已发布设备编号应分配给新连接的客户端。
我怎么能在Blazor服务器应用程序中做到这一点?很抱歉,我不能和你分享一个代码草案,因为我真的不知道我应该在哪里编程一个算法,它包含了所有客户的信息。我在项目中使用IIS windows身份验证。
使用依赖注入
- 创建一个新类
ClientConnectionNumberManager
并作为Singleton注入。这个类是了解自由数的助手 - 创建一个包含
ClientConnectionNumber
的新类将该类注入为scoped
。这个类在构造函数上获取ClientConnectionNumberManager
,计算出数字,并在dispose上释放数字 - 无论您在哪里需要
ClientConnectionNumber
,都可以通过依赖注入来获取类
Blazor Server DI确保每个用户(每个连接(都有自己的作用域类。