Python websockets

时间:2015-03-19 16:15:12

标签: python websocket twisted

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

我想你会把onMessage请求转移到其他协议上。

我没有任何代码可以显示,因为我不知道从哪里开始,但任何代码示例都会受到赞赏。

1 个答案:

答案 0 :(得分:3)

你要求的是proxy server之类的声音。代理可以简单地是一个中间人,在两端都说出相同的协议(如在典型的http代理中),或者它可以是某种协议,其中有一个协议进入,另一个协议出来。

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

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

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

    无论您是为每个webSocket连接在代理和其他服务器之间维护专用连接,还是通过一个专用连接定向所有请求,或者是否仅在需要时创建了新连接,这将是一个实现选择。给定的请求。最有意义的完全取决于其他服务器的特性,请求数量和正在进行的工作。