龙卷风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()

它工作得很好,但我想知道如果其他模块(龙卷风。httpserver,龙卷风。Ioloop和tornado.web)实际上需要运行服务器。

拥有它们并不是一个大问题,但我只是想确保没有更好的方法来做它们所做的任何事情(我还没有涉及到这些模块,到目前为止)。

  • 龙卷风。httpserver:

    1. 一个非阻塞、单线程的 HTTP服务器。典型的应用程序很少与HTTPServer类直接交互。
    2. HTTPServer是一个非常基本的连接处理程序。除了解析HTTP请求正文和报头之外,在HTTPServer中实现的唯一HTTP语义是HTTP/1.1保持连接。
  • 龙卷风。ioloop:

    1. 非阻塞套接字的I/O事件循环。
    2. 因此,ioloop可以用于设置响应的超时。一般来说,RequestHandler和tornado中的其他方法不是线程安全的。特别是,write()、finish()和flush()等方法只能在主线程中调用。如果使用多个线程,使用IOLoop是很重要的。add_callback在完成请求之前将控制权转移回主线程。
  • 龙卷风。网络:

    1. 提供RequestHandlerApplication
    2. 帮助使用额外的工具和优化,以利用龙卷风非阻塞web服务器和工具的优势。
    3. 所以,这些是这个模块的规定:
      • 入口点:用于子类初始化的钩子。输入>输出
      • <
      • 饼干/gh>

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

是的,它们是必需的,因为您正在使用来自引用的每个模块/包的每个导入。如果你在源代码的顶部引用了一些东西,但在下面的代码中再也没有使用过,那么你当然不需要它们,但在这种情况下,你使用了你的imports

相关内容

  • 没有找到相关文章

最新更新