读者最好已具备 Javascript 与 WebSocket 的基础知识.
安装
使用 easy_install 能很方便地爬到 tornado. 或者, 下载源代码, 解包后在源码目录执行$ python setup.py build
# python setup.py install
开张
首先还是来个 hello world.import tornado.web
import tornado.ioloop
class Index(tornado.web.RequestHandler):
def get(self):
self.write('<html><body>Hello, world!')
if __name__ == '__main__':
app = tornado.web.Application([
('/', Index),
])
app.listen(8000)
tornado.ioloop.IOLoop.instance().start()
$ python main.py
在分支中定义的
app
在构造时接受的一个列表参数[
('/', Index),
]
Index
实例去处理, 在 Index
实例中, 定义的 get
方法将会处理请求.处理 WebSocket 连接
添加请求处理类
接下来就进入 WebSocket 环节. 先修改返回的页面, 让这个页面在加载后连接服务器.class Index(tornado.web.RequestHandler):
def get(self):
self.write('''
<html>
<head>
<script>
var ws = new WebSocket('ws://localhost:8000/soc');
ws.onmessage = function(event) {
document.getElementById('message').innerHTML = event.data;
};
</script>
</head>
<body>
<p id='message'></p>
''')
现在, 访问 http://localhost:8000/ 会遇到 404 错误, 因为 WebSocket 请求的 URL "ws://localhost:8000/soc" 还没有映射任何处理器, 因此这里需要再添加一个, 用于处理 WebSocket 请求的类.
import tornado.websocket
class SocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
self.write_message('Welcome to WebSocket')