iT邦幫忙

0

WebSocket該如何判斷連線者身份?

  • 分享至 

  • xImage

目前需要使用SignalR建立連線通訊

主要是想問一下身份判斷的邏輯

先說明一下我自己的理解

WebSocket就是建立一個連線池

每個使用者開啟網站就會連接到這個池並生成一個唯一的ID

問題1. 若今天想要對特定使用者發布訊息,該如何知道特定使用者的連線ID,進而發送呢?

這是我目前的想法 : 每當使用者連線,前端就需要傳送包含客戶編號與連線ID給伺服器

而後端就要在這時候把這些資訊儲存在資料庫,之後要傳訊息時再從資料庫比對連線ID

若使用者同時用兩個設備上線,資料庫就會儲存兩筆此使用者的連線ID

發送訊息時就會發送兩次

請問這樣的方法是正確的嗎?

iT邦新手 4 級 ‧ 2023-05-31 19:50:26 檢舉
SignalR 框架的前端有函式可以取得這次的連線 ID(這也是從伺服器端傳來的),所以若你想辨識到底是哪個客戶端,就要在前端呼叫後端函式時一併把這個連線 ID 傳進來,後端這邊也有函式可以使用連線 ID 找到對應的客戶端

Mapping SignalR Users to Connections
https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答