簡體   English   中英

如何為實際連接到我的 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 身份驗證。

依賴注入

  1. 創建一個新的 class ClientConnectionNumberManager注入為 Singleton。 這個 class 是了解免費號碼的好幫手。
  2. 創建一個新的 class ,其中包含您的ClientConnectionNumber 注入class 作為scoped 此 class 在構造函數上獲取ClientConnectionNumberManager並計算出編號並在處置時釋放編號。
  3. 無論您在哪里需要ClientConnectionNumber都可以通過Dependency Injection獲取 class 。

Blazor 服務器 DI 確保每個用戶(每個連接)都有自己的范圍 class。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM