Tornado-第三篇-tornado支持websocket协议

  manage.py

from tornado.ioloop import IOLoop
from tornado.web import RequestHandler
from tornado.websocket import WebSocketHandler
from tornado.web import Application

CLIENT_LIST = []

class MsgHandler(WebSocketHandler):
    def open(self):
        CLIENT_LIST.append(self)

    def on_message(self, message):
        for obj in CLIENT_LIST:
            obj.write_message(message)

    def on_close(self):
        CLIENT_LIST.remove(self)

# 页面函数
class HomeHandler(RequestHandler):
    def get(self, *args, **kwargs):
        self.render(‘index.html‘)

# 配置
settings = {
    ‘template_path‘: ‘templates‘,
    ‘cookie_secret‘: ‘asq3wuraldf‘
}
# 页面对应函数
application = Application([
    (‘/home‘, HomeHandler),
    (‘/msg‘, MsgHandler),
], **settings)
if __name__ == ‘__main__‘:
    application.listen(8888)
    IOLoop.instance().start()

  

原文地址:https://www.cnblogs.com/weilaixiaochaoren/p/10276257.html

时间: 2024-10-13 06:35:51

Tornado-第三篇-tornado支持websocket协议的相关文章

阿里云全站加速DCDN全面支持WebSocket协议

WebSocket协议可以为网站和应用提供真正的双向通信,具有控制开销.保持连接状态.更强实时性.更好的压缩效果等优点,是当下低延时应用最常采用的一种技术协议.为了更好的满足客户在实时通讯场景下的加速需求,目前阿里云全站加速DCDN已经全面支持WebSocket协议,以此确保更加极致的客户体验. WebSocket的优势与应用 HTML5定义 的WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信,即允许服务器主动发送信息给客户端.因此

RPC服务框架dubbo(三):Dubbo支持的协议

1.Dubbo 1.1 Dubbo官方推荐的协议. 1.2 本质:使用NIO和线程池进行处理. 1.3 缺点:大文件传输时可能出现文件传输失败问题. 2.RMI 2.1 JDK提供的协议,远程方法调用协议. 2.2 缺点:偶尔连接失败. 2.3 优点:JDK原生,不需要进行额外配置(导入jar) 3.Hession 3.1 优点:基于http协议,http请求支持. 3.2 缺点:需要额外导入jar,并在短连接时性能低 原文地址:https://www.cnblogs.com/shamo89/p

netty(4)高级篇-Websocket协议开发

一.HTTP协议的弊端 将HTTP协议的主要弊端总结如下: (1) 半双工协议:可以在客户端和服务端2个方向上传输,但是不能同时传输.同一时刻,只能在一个方向上传输. (2) HTTP消息冗长:相比于其他二进制协议,有点繁琐. (3) 针对服务器推送的黑客攻击,例如长时间轮询. 现在很多网站的消息推送都是使用轮询,即客户端每隔1S或者其他时间给服务器发送请求,然后服务器返回最新的数据给客户端.HTTP协议中的Header非常冗长,因此会占用很多的带宽和服务器资源. 比较新的技术是Comet,使用

MQTT协议笔记之mqtt.io项目Websocket协议支持

前言 MQTT协议专注于网络.资源受限环境,建立之初不曾考虑WEB环境,倒也正常.虽然如此,但不代表它不适合HTML5环境. HTML5 Websocket是建立在TCP基础上的双通道通信,和TCP通信方式很类似,适用于WEB浏览器环境.虽然MQTT基因层面选择了TCP作为通信通道,但我们添加个编解码方式,MQTT Over Websocket也可以的. 这样做的好处,MQTT的使用范畴被扩展到HTML5.桌面端浏览器.移动端WebApp.Hybrid等,多了一些想像空间.这样看来,无论是移动端

Websocket协议的学习、调研和实现

1. websocket是什么 Websocket是html5提出的一个协议规范,参考rfc6455. websocket约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信.在websocket出现之前,web交互一般是基于http协议的短连接或者长连接. WebSocket是为解决客户端与服务端实时通信而产生的技术.websocket协议本质上是一个基于tcp的协议,是先通过HTTP/HTTPS协议发

Netty笔记:使用WebSocket协议开发聊天系统

转载请注明出处:http://blog.csdn.net/a906998248/article/details/52839425 前言,之前一直围绕着Http协议来开发项目,最近由于参与一个类似竞拍项目的开发,有这样一个场景,多个客户端竞拍一个商品,当一个客户端加价后,其它关注这个商品的客户端需要立即知道该商品的最新价格.       这里有个问题,Http协议是基于请求/响应的,客户端发送请求,然后服务端响应返回,客户端是主动方,服务端被动的接收客户端的请求来响应,无法解决上述场景中服务端主动

Jmeter对基于websocket协议的压力测试

WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道.两者之间就直接可以数据互相传送.在此WebSocket 协议中,为我们实现即时服务带来了两大好处: 1. Header  互相沟通的Header是很小的-大概只有 2 Bytes 2. Server Push 浏览器请求 GET /WebSocket/LiveVideo HTTP/1.1

使用JMeter测试基于WebSocket协议的服务

使用JMeter测试基于WebSocket协议的服务 :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px}iframe{border:0}figure{-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0}kbd{bord

WebSocket协议入门简介

前言 以前的网站为了实现推送功能,使用的方法都是轮询.所谓的轮询就是在特定的时间间隔(例如1秒),由浏览器向服务器发出一个 Http request ,然后服务器返回最新的数据给客户端浏览器,从而给出一种服务端实时推送的假象.由于 Http Request 的 Header(请求头)很长,而传输的数据可能很短就只占一点点,每次请求消耗的带宽大部分都消耗在 Header 上.从网上资料得知后来还有改进的轮询方法叫做 Comet ,使用 Ajax .但这种技术虽然可达到双向通信,但依然需要发出请求,