首页 > 解决方案 > Websocket 行为路径,是否需要在每次 url 更改时创建新连接?

问题描述

我创建了一个基于 websocket-sharp 的 Websocket 服务器,具有两种行为,例如:

在 JavaScript 中,当我打开到 WebSocket 服务器的连接时,我需要指定将接受我的消息的行为的 URL。当我连接到 behavior1 的 url 时如何调用 behavior2 而无需创建新的 websocket 连接?这可能吗?

在这一点上,我正在考虑创建一种行为来解析我的消息并重定向到适当的消息处理程序。

除了逻辑划分之外,还有什么理由使用多种行为吗?即使强制创建新连接,有任何理由使用这种逻辑划分吗?

标签: c#websocketwebsocket-sharp

解决方案


当我连接到 behavior1 的 url 时如何调用 behavior2 而无需创建新的 websocket 连接?

当您有两个 URL 时,您必须对每个 URL 建立两个不同的连接。您不能重复使用相同的连接来连接到不同的 URL。

在这一点上,我正在考虑创建一种行为来解析我的消息并重定向到适当的消息处理程序。

这将是最好的方法。您可以在 WebSocket 帧中发送 json 数据,然后解析这些数据以识别适当的行为并进行相应的处理。例如,您可以在每个帧中有一个 JSON 对象,如下所示:

{
   "behavior":1,
   "content": "your content to be processed"
}

除了逻辑划分之外,还有什么理由使用多种行为吗?即使强制创建新连接,有任何理由使用这种逻辑划分吗?

您只需要对每个客户端不同的连接特定数据使用不同的 URL。例如 id 或 name。如果同一个客户端在不同的时间需要不同的行为,您可以定义自己的 WebSocket 帧中的数据约定,如上所述。


推荐阅读