![](/img/trans.png)
[英]How can I tell if code will run on the client or server with Blazor?
[英]How can I assign for each client that is actualy connected to my Blazor server app a seperate "Client-connection-number"?
我有一个 Blazor 服务器应用程序,每个客户端都可以连接到选定的远程生产机器并读取其 PLC 的数据。 用于 PLC 连接的 dll 要求每个客户端有一个单独的“连接号”。 相关PLC的连接将通过该设备号建立,只要连接了客户端就应该是一样的。
我必须将每个新连接的客户端提供给我的 Blazor 服务器应用程序,这是最可能的小连接数。 这意味着:如果第一个客户端 Client-1 连接,它将获得“1”。 第二个客户端“2”,第三个客户端“3”,第四个客户端“4”。 如果这四个客户端在线并且当客户端 1 退出时,下一个客户端应该得到“1”。 这意味着断开连接的客户端的释放设备号应该分配给新连接的客户端。
我怎么能在 Blazor 服务器应用程序中做到这一点? 抱歉,我无法与您分享代码草稿,因为我真的不知道应该在哪里编写包含所有客户端信息的算法。 我在我的项目中使用 IIS windows 身份验证。
ClientConnectionNumberManager
并注入为 Singleton。 这个 class 是了解免费号码的好帮手。ClientConnectionNumber
注入class 作为scoped
。 此 class 在构造函数上获取ClientConnectionNumberManager
并计算出编号并在处置时释放编号。ClientConnectionNumber
都可以通过Dependency Injection获取 class 。Blazor 服务器 DI 确保每个用户(每个连接)都有自己的范围 class。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.