c# - Websocket 行为路径,是否需要在每次 url 更改时创建新连接?
问题描述
我创建了一个基于 websocket-sharp 的 Websocket 服务器,具有两种行为,例如:
- ws://host/behavior1
- ws://host/behavior2
在 JavaScript 中,当我打开到 WebSocket 服务器的连接时,我需要指定将接受我的消息的行为的 URL。当我连接到 behavior1 的 url 时如何调用 behavior2 而无需创建新的 websocket 连接?这可能吗?
在这一点上,我正在考虑创建一种行为来解析我的消息并重定向到适当的消息处理程序。
除了逻辑划分之外,还有什么理由使用多种行为吗?即使强制创建新连接,有任何理由使用这种逻辑划分吗?
解决方案
当我连接到 behavior1 的 url 时如何调用 behavior2 而无需创建新的 websocket 连接?
当您有两个 URL 时,您必须对每个 URL 建立两个不同的连接。您不能重复使用相同的连接来连接到不同的 URL。
在这一点上,我正在考虑创建一种行为来解析我的消息并重定向到适当的消息处理程序。
这将是最好的方法。您可以在 WebSocket 帧中发送 json 数据,然后解析这些数据以识别适当的行为并进行相应的处理。例如,您可以在每个帧中有一个 JSON 对象,如下所示:
{
"behavior":1,
"content": "your content to be processed"
}
除了逻辑划分之外,还有什么理由使用多种行为吗?即使强制创建新连接,有任何理由使用这种逻辑划分吗?
您只需要对每个客户端不同的连接特定数据使用不同的 URL。例如 id 或 name。如果同一个客户端在不同的时间需要不同的行为,您可以定义自己的 WebSocket 帧中的数据约定,如上所述。
推荐阅读
- javascript - 用于多个用户输入的表单验证的 JavaScript
- vba - 在列中找到正确的重复值并根据 2 个标准(值和日期)剪切粘贴发现重复的行
- python - SQLITE 数据库错误“sqlite3.OperationalError:没有这样的表:表”
- python - 找出两个图之间的差异
- spring-boot - 如何在 Spring Boot 中向 EmbeddedKafka 发送具有特定偏移量的消息?
- c# - unity c# 需要帮助理解switch语句
- apache-flink - Flink 接收器文件系统作为镶木地板 - 保存嵌套数据时出错
- excel - 用户窗体中几个命令按钮的唯一代码
- jenkins - Unbale 使用 git 参数插件检索 git 引用。创建构建时出现以下错误
- github - 如何在 github 操作中编写 pr 构建检查?