【发布时间】:2023-03-06 23:58:01
【问题描述】:
我使用 websocket-sharp (https://github.com/sta/websocket-sharp)(仅限服务器端)。
我可以有许多客户端应用程序连接到我的 websocket 服务器。每个客户端发送一个 ID(我们称之为CLIENT_ID)。
我想知道哪个 websocket 会话与CLIENT_ID 相关。
IWebSocketSession暴露ID(我们称之为SESSION_ID)。
我尝试过的:
首先我有一个存储类,用于存储每个SESSION_ID 他的CLIENT_ID(一个简单的字典)。
当我收到来自客户端应用程序的消息时,我将SESSION_ID 和CLIENT_ID 存储在我的字典中。
因此,当我想向具有CLIENT_ID == XXX 的所有会话发送消息时,我可以使用这本字典。这工作正常...
但会话只是暂时的。一个客户端可以使用多个会话。因此,对于单个客户,我的字典中很快就会有很多输入。当我向字典中具有CLIENT_ID == XXX 的所有会话发送消息时,我将多次向同一个客户端发送相同的消息。
我的问题是:如何使用 websocket-sharp 注册唯一客户端?我应该使用哪个属性?
编辑:即使是唯一的客户端,它也会每 20 秒更改一次会话 ID。这可能是为 ping 创建的新会话。
【问题讨论】:
标签: c# websocket websocket-sharp