tornado简介

python不仅可以用来做系统或者业务层面的开发,还可以做跟web相关的项目,目前有3个比较广泛流行的python开源web框架,有web.py、tornado、django。web.py http://webpy.org/ 它相对于其他两个框架来讲比较精简上手也比较快,当然了精简的另外一方面就是功能比较简单。tornado http://www.tornadoweb.org/ 网上流传作者的灵感来自于web.py,tornado跟其他框架相比,经常说的一个特性就是非阻塞服务。最后一个常见的django我们会在另外的文章单独再介绍,个人感觉django https://www.djangoproject.com/ 貌似更适合用来做web的前后端融合开发,但django使用起来个人觉得相对比较复杂,需要理解的概念东西比较多,tornado则相对来讲比较适合做web的后端服务,而且使用起来也简单。

tornado使用案例
什么时候我们会用到python的web框架呢?在回答这个问题之前我们先了解一下现状,我们知道当前有2个很成熟,稳定,而且使用面也很广的开源web服务端,apache和nginx,他们都能内嵌或者支持php,lua等动态扩展,可以很好地完成大部分项目对web的需求功能。apache,nginx这些web服务端,它们擅长的地方都是提供http、https或者代理服务,如果请求的连接需要后台长期运行的比如websocket服务,用起来就不太好使。现在微信的小程序都很流行,在微信的小程序里面只有2种网络通信方式可以用,一种是普通的http请求回复型的断连接,一种是支持长连接的websocket,假如需要使用小程序来实现一个长连接的功能,那么websocket则是不二之选。
下面我们通过一个websocket服务器聊天室作为例子,演示tornado框架的简单使用。

先安装tornado
人生苦短我用python[0x0C] 小试tornado(websocket)
编辑main.py文件内容如下:
人生苦短我用python[0x0C] 小试tornado(websocket)_第1张图片
运行main.py文件
人生苦短我用python[0x0C] 小试tornado(websocket)
我们再使用一个在线的websocket测试工具 http://www.websocket.org/echo.html 连接到我们的websocket服务器,记得我们使用的是普通的websocket(ws),所以务必访问http的地址,如果访问了https默认是用wss(SSL的websocket访问是不行的),如下截图所示:
人生苦短我用python[0x0C] 小试tornado(websocket)_第2张图片
一切正常的话,会提示CONNECTED代表连接websocket服务器成功,这个时候我们调用api接口发送一个消息。
人生苦短我用python[0x0C] 小试tornado(websocket)
我们可以看到websocket测试工具连接的websocket成功地收到我们发送的消息。
文章来自微信公众号:睿江云计算
人生苦短我用python[0x0C] 小试tornado(websocket)_第3张图片