C#Websocket Sharp-如何识别客户

C#Websocket Sharp-如何识别客户,c#,websocket,websocket-sharp,C#,Websocket,Websocket Sharp,我使用websocket sharp()(仅服务器端) 我可以将许多客户端应用程序连接到我的websocket服务器。每个客户端发送一个ID(我们称之为client\u ID) 我想知道哪个websocket会话与客户端ID相关 IWebSocketSessionexposeID(我们称之为SESSION\u ID) 我尝试过的: 首先,我有一个存储类,它为每个会话IDhis客户端ID(一个简单的字典)存储 当我收到来自客户端应用程序的消息时,我将会话ID和客户端ID存储在字典中 因此,当我想向

我使用websocket sharp()(仅服务器端)

我可以将许多客户端应用程序连接到我的websocket服务器。每个客户端发送一个ID(我们称之为
client\u ID

我想知道哪个websocket会话与
客户端ID
相关

IWebSocketSession
expose
ID
(我们称之为
SESSION\u ID

我尝试过的:

首先,我有一个存储类,它为每个
会话ID
his
客户端ID
(一个简单的字典)存储

当我收到来自客户端应用程序的消息时,我将
会话ID
客户端ID
存储在字典中

因此,当我想向所有具有
CLIENT\u ID==XXX
的会话发送消息时,我可以使用这个字典。这个很好用

但是会话只是临时的。客户端可以使用多个会话。因此,对于单个客户机,我的字典中很快就会有许多输入。当我向字典中所有会话发送一条消息,且客户端ID=XXX时,我将多次向同一客户端发送相同的消息

我的问题是:如何向websocket sharp注册唯一客户?我应该使用哪种财产


编辑:即使使用唯一的客户端,它也会每隔20秒更改会话ID。这可能是为ping创建的新会话

好的,因为我什么也没找到,我保留了
会话ID
,但是当我在字典中注册一个新项目(
会话ID
=>
客户端ID
)时,我必须手动删除所有“旧会话”

这可以通过检查session.State==WebSocketState.Open来完成

这不是完美的,但很有效