【问题标题】:Python websocketsPython 网络套接字
【发布时间】:2015-03-19 16:15:12
【问题描述】:

是否可以让一个协议连接到同一服务器上的另一个协议?我的目标是接受一个协议的请求,然后将该请求传递给不同的协议,并让第二个协议将值返回给连接到它的任何客户端。

我想你会以某种方式将 onMessage 请求转移到其他协议。

我没有任何代码可以显示,因为我不知道从哪里开始,但是任何代码示例都将不胜感激。

【问题讨论】:

  • 除非“One”是库的名称,否则您必须创建自己的适配器以在不同协议之间进行通信(即 REST websockets)。
  • 对标题很抱歉,已修复。
  • 听起来你想写一个“代理”。也许该关键字会帮助您找到一些信息。

标签: python websocket twisted


【解决方案1】:

您要求的内容听起来像是proxy server。代理可以只是一个中间人,在两端使用相同的协议(就像在典型的 http 代理中一样),也可以是某种翻译器,有一个协议进来,另一个协议出去。

所以,假设您希望浏览器能够使用 webSocket 连接与其他不使用 webSocket 协议的服务器通信。您可以自己实现一个代理服务器,允许浏览器连接到它,然后通过您的代理,它可以与使用不同协议的其他服务器发送/接收消息。

要实现这样的代理服务器,您需要执行以下操作:

  1. 创建一个侦听传入 webSocket 连接的服务器进程。这将允许浏览器连接到您的代理。
  2. 一旦连接,浏览器将通过 webSocket 发送一条消息(您自己设计的)。
  3. 您的代理会收到该消息并将其转换为其他服务器的协议,
  4. 然后您的代理将连接到其他服务器并将消息发送到其他服务器。
  5. 然后,您的代理可以从其他服务器接收响应,然后,如果需要,通过 webSocket 将翻译后的响应消息发送回浏览器。

代理负责将通过 webSocket 接收到的每条消息数据转换为其他服务器使用的任何格式/协议。

对于每个 webSocket 连接,您是否在代理和其他服务器之间维护一个专用连接,或者您是否通过一个专用连接引导所有请求,或者您是否仅在给定的请求。哪个最有意义完全取决于其他服务器的特性、请求数量和正在完成的工作。

【讨论】:

  • @Chris - 这回答了你的问题吗?
猜你喜欢
  • 1970-01-01
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
相关资源
最近更新 更多