处理后端的HTTP和websocket连接

时间:2014-02-16 22:58:58

标签: python websocket tornado

我正在制作一款我想通过iOS / Android /浏览器支持的游戏,并且我认为Websockets是我想要用于通信的。我使用python,因此发现我应该使用Tornado。

我试图更好地理解websockets以及它们在浏览器中的集成。

  1. websocket连接上的消息是否也包含连接的HTTP cookie?如果没有,我可以寄出吗?
  2. 如何将网页的HTTP连接链接到websocket连接?我的意思是我怎么知道它们来自服务器端的同一个webapp?
  3. Tornado wiki page在性能部分中说可以使用nginx作为前端设置Tornado。这是如何运作的?我认为Tornado和nginx必须在不同的机器上运行,因为它们都在端口80上监听,也因为nginx不理解WS协议。我错过了什么?
  4. 如果有人能指出我可以阅读的有关Tornado或websocket的任何资源可以帮助我,那将会很棒。

1 个答案:

答案 0 :(得分:1)

  1. 通过向服务器发送普通的http请求来设置websocket,该请求将包含域的所有存储的cookie。如果您执行本机实现,例如Android你可以使用像Autobahn|Android这样的库,API允许你为websocket握手设置cookie。

  2. 您可以在首次加载页面时设置Cookie以维护会话标识符。

  3. 在这种情况下,他们将运行4个Tornado实例(在不同的端口,但不是端口80)和端口80上的Nginx作为负载均衡器,将传入的客户端请求传播到Tornado实例,请参阅{{ 3}}用于配置示例。最新版本的Nginx 支持支持websockets,请参阅例如running Tornado and Nginx on same server