首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Websocket-Sharp -如何识别客户端

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

Stack Overflow用户
提问于 2015-04-29 10:18:33
回答 1查看 5.7K关注 0票数 4

我使用websocket( https://github.com/sta/websocket-sharp )(仅服务侧).

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

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

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

我尝试过的:

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

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

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

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

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

编辑:,即使有一个独特的客户端,它每20分钟就会更改一次会话的ID。它可能是为ping创建的一个新会话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 13:45:27

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

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

这并不完美,但很有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29940823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档