tornado: TCPServer & HttpServer

HttpServer的父类是TCPServer,而且从实现来看,默认只是简单的重载了handle_stream这个方法,而已。 HttpServer的构造函数里面,最重要的是request_callback,也就是说,当一个request进来的时候,怎么处理。 拿blog这个例子来说,Application干的就是这个事情。

HttpServer这个简单的类后面,则是TCPServer这不大不小的一坨。。。

几个比较重要的方法,挑出来看看:

listen:

只做了两件事,

  1. bind_sockets。 针对于给定的address/host,端口,产生一个或者一系列的非阻塞socket链接。
  2. add_sockets。 调用add_accept_handler方法到IOLoop这个消息汞(对于IOLoop我的理解大概不对。。)中,当socket连接状态变为可读时,调用TCPServer对象的_handle_connection方法作为回调函数。而在_handle_connection中,最终调用了handle_stream,这个应该被子类重载的方法。

start:

参数num_processes,指定了使用几个进程来初始化server

stop:

Stops listening for new connections.

相关推荐