龙卷风WebSocket问题

Ale*_*der 1 python module tornado websocket

最后决定使用Tornado作为WebSocket服务器,但我对如何实现它有疑问.

在完成了有关创建工作服务器的基本教程之后,我最终得到了以下内容:

#!/usr/bin/env python

from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.web import Application
from tornado.websocket import WebSocketHandler

class Handler(WebSocketHandler):
        def open(self):
            print "New connection opened."

        def on_message(self, message):
                print message


        def on_close(self):
                print "Connection closed."

print "Server started."
HTTPServer(Application([("/", Handler)])).listen(1024)
IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

它的伟大工程和所有的,但如果实际需要的其他模块(tornado.httpserver,tornado.ioloop和tornado.web)来运行服务器我想知道.

拥有它们并不是一个大问题,但我只是想确保没有更好的方法来做任何事情(我还没有完全覆盖这些模块).

pri*_*tam 6

  • tornado.httpserver:

    1. 无阻塞,单线程 HTTP服务器.
    2. 典型应用程序几乎没有与HTTPServer类直接交互.
    3. HTTPServer是一个非常基本的连接处理程序.除了解析HTTP请求主体和头部之外,HTTPServer中实现的唯一HTTP语义是HTTP/1.1保持活动连接.
  • tornado.ioloop:

    1. 非阻塞套接字的I/O事件循环.
    2. 因此,ioloop可用于设置响应的超时.
    3. 通常,RequestHandler和tornado中的其他方法不是线程安全的.特别是,只能从主线程调用诸如write(),finish()和flush()之类的方法.如果使用多个线程,则在完成请求之前使用IOLoop .add_callback将控制权转移回主线程非常重要.
  • tornado.web:

    1. 提供RequestHandlerApplication
    2. 帮助利用其他工具和优化来利用Tornado无阻塞Web服务器和工具.
    3. 所以,这些是本单元的规定:
      • 入口点:Hook用于子类初始化.
      • 输入
      • 产量
      • 饼干

我希望,这将涵盖您留下的模块.