gpt4 book ai didi

C# Websocket-Sharp - 如何识别客户端

转载 作者:行者123 更新时间:2023-11-30 17:44:13 42 4
gpt4 key购买 nike

我使用 websocket-sharp ( https://github.com/sta/websocket-sharp )(仅限服务器端)。

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

我想知道哪个 websocket session 与 CLIENT_ID 相关。

IWebSocketSession 公开 ID(我们称它为 SESSION_ID)。

我尝试过的:

首先,我有一个存储类,它为每个 SESSION_ID 存储他的 CLIENT_ID(一个简单的字典)。

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

因此,当我想向具有CLIENT_ID == XXX 的所有 session 发送消息时,我可以使用这本字典。这很好用......

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

我的问题是:如何使用 websocket-sharp 注册唯一客户端?我应该使用哪个属性?

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

最佳答案

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

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

它并不完美,但它确实有效。

关于C# Websocket-Sharp - 如何识别客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940823/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com