基于tornado的复古聊天室

2140 阅读 · 2020年6月2日 23:38 更新 · 作者:clannadhh


    今天我们来做点东西,自己动手来搭建一个简单的在线聊天室。

    技术选型我们使用Tornado框架,前端使用jquery库。今天我们会用到一个技术,叫做websocket。这也是我们选择Tornado的一个原因。

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。想想如果我们没有websocket,是不是聊天室的每个人都要去轮询服务器有没有新消息,用户一多势必对服务器压力极大,另外浪费了带宽,而且这个轮询只能去主动发起。但是有了webscoket,那就不一样了。在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输来告诉服务端你是谁。而Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求。稍微了解了什么是websocket之后,我们再来看看Tornado。

    这一次我们要用到TornadoWebSocket模块。Tornado在websocket模块中提供了一个WebSocketHandler类,这个类提供了和已连接的客户端通信的WebSocket事件和方法的Handler。

  • open方法,新的WebSocket连接打开时被调用。
  • on_message方法:连接收到新消息时被调用。
  • on_close方法:客户端关闭时被调用。
  • write_message方法:向客户端发送消息时被调用。
  • close方法:关闭连接时调用。

    好了,上代码。

    明天继续