django开发-比较django和tornado框架的不同2

上一篇介绍了django和tornado在实现异步非阻塞方面的不同,其实在django中实现异步非阻塞还可以使用asyncio和aiohttp,具体使用方式以后再做介绍。

今天主要介绍下django和tornado在实现websocket上的不同。

1.django实现websocket

django实现websocket可以使用dwebsocket和channels,但是dwebsocket貌似只能在函数视图中使用,类视图中好像不行。django中使用channels实现websocket的方法可以看我头条中的另一篇文章《django开发-websocket的实现》。

2.tornado中实现websocket

tornado中实现websocket功能需要用到tornado.websocket模块,主要有以下几个方法:open(), write_message(), on_message(), on_close()。

open(): 当websocket客户端连接时所做的操作
write_message(): 使用这个方法向客户端发送消息
on_message(): 接收并处理客户端的消息
on_close(): websocket关闭连接时所作的操作

下面举一个例子:

1)请求处理类handler.py:

django开发-比较django和tornado框架的不同2

2)路由urls.py:

django开发-比较django和tornado框架的不同2

3)前端chat.html:

django开发-比较django和tornado框架的不同2

上面一个例子通过tornado的websocket模块实现了简单的聊天功能。

websocket在web开发中使用越来越广泛,对比django和tornado中实现websocket的方式,可以发现其实tornado中websocket的实现是更加简单的,不需要引入第三方模块,而且容易上手。

今天就介绍到这里,对django和tornado框架感兴趣的小伙伴欢迎私信交流。


分享到:


相關文章: