当前位置: 首页 > news >正文

百度秒收录的网站定制网站开发公司生物医药

百度秒收录的网站,定制网站开发公司生物医药,免费万能视频提取器,网站建设与行政管理WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。Tornado中定义了tornado.websocket.WebSocketHandler来处理websocket请求。Tornado框架的安装以及入门这里就不说了#xff0c;想入门tornado的请移步我的另一篇文章奥小飞#xff1a;基于Python的…WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。Tornado中定义了tornado.websocket.WebSocketHandler来处理websocket请求。Tornado框架的安装以及入门这里就不说了想入门tornado的请移步我的另一篇文章奥小飞基于Python的Tornado框架入门​zhuanlan.zhihu.comWebSocketHandler类中方法简介open()当websocket连接建立后被调用on_message(message) *该方法必须被重写当收到客户端发送的消息时被调用on_close()当websocket连接关闭后被调用write_message(message, binaryFalse)向客户端发送消息message可以是字符串或字典(字典会被转为json)。若binary为False则message以utf8编码发送二进制模式(binaryTrue)时可发送任何字节码。close()关闭websocket连接check_origin(origin)判断源origin对于符合条件(返回判断结果为True)的请求源origin允许其连接否则返回403。可以重写此方法来解决WebSocket的跨域请求(如始终return True)。websocket demoimport tornado.ioloopimport tornado.webimport tornado.websocketclass ConnectHandler(tornado.websocket.WebSocketHandler) :def check_origin(self, origin) :重写同源检查 解决跨域问题return Truedef open(self) :新的websocket连接后被调动self.write_message(Welcome)def on_close(self) :websocket连接关闭后被调用def on_message(self, message) :接收到客户端消息时被调用self.write_message(new message : message) # 向客服端发送class MainHandler(tornado.web.RequestHandler) :def get(self) :self.write(Hello world)class Application(tornado.web.Application) :def __init__(self) :handlers [(r/index, MainHandler),(r/ws, ConnectHandler)]tornado.web.Application.__init__(self, handlers)if __name__ __main__ :app Application()app.listen(8000)tornado.ioloop.IOLoop.current().start()前端页面demoTornado WebSocketConnect websocket:function sendMsg() {if (WebSocket in window) {var ws new WebSocket(ws://localhost:8000/ws);ws.onopen function() {ws.send(Hello);};ws.onmessage function (evt) {alert(evt.data);};}}这个demo创建了一个websocket服务并监听8000端口在浏览器建立连接之后会触发open()方法向浏览器推送“welcome”消息在收到浏览器发送的消息后会触发on_message()方法向浏览器推送“new message :”消息。到此为之一个简单的websocket应用已经可以了。但是这个demo太过于简单他只实现了在建立连接时和收到消息时的一些操作并没有体现websocket的主要作用(实时推送数据)。websocket demo 进阶import tornado.ioloopimport tornado.webimport tornado.websocketclass ProStatus():connector {} # 记录当前连接的userdef user_connect(self, user):if user not in self.connector:self.connector[user] set()def user_remove(self, user):self.connector.remove(user)def trigger(self, message): 向所有被记录的客户端推送最新内容 for user in self.connector:user.write_message(message)class ReceiveHandler(tornado.web.RequestHandler):def get(self):msg self.get_argument(msg, )ProStatus().trigger(msg) # 接收到消息之后推送class ConnectHandler(tornado.websocket.WebSocketHandler):def check_origin(self):重写同源检查 解决跨域问题return Truedef open(self):新的websocket连接后被调动ProStatus().user_connect(self) #用户连接后记录self.write_message(Welcome)def on_close(self):websocket连接关闭后被调用ProStatus().user_remove(self) # 断开连接后removedef on_message(self, message):接收到客户端消息时被调用self.write_message(new message : message)class IndexHandler(tornado.web.RequestHandler):def get(self):self.write(Hello world)class Application(tornado.web.Application):def __init__(self):handlers [(r/index, IndexHandler),(r/ws, ConnectHandler),(r/receive, ReceiveHandler)]tornado.web.Application.__init__(self, handlers)if __name__ __main__:app Application()app.listen(8000)tornado.ioloop.IOLoop.current().start()问题心跳包如果websocket隔一段时间不推送数据那么前端的连接就会自动断开 所以前端建立websocket连接时需要加入心跳包机制。 当然心跳包不单单是为了解决该问题也是为了解决各种意外断开的情况心跳包很有必要。 心跳包的原理就是每隔一定的时间检查websocket连接是否断开在没有断开的情况下隔一定的时间给服务端发送一条消息这条消息要确保服务端可以回应如果断开则进行重连。至于前端具体怎么实现心跳包的代码请自行百度。
http://www.zqtcl.cn/news/20746/

相关文章:

  • 在线看seo网站网站建设系统开发感想与收获
  • 网站颜色背景代码企业信息平台系统
  • 思行做网站海南省城乡住房建设厅网站
  • 电子商务型网站中国互联网网站性能
  • 模板网站建设哪家好刚刚廊坊发生大事了
  • 北京网站优化培训网站策划建设方法
  • 域名备案时网站名字如何进行企业营销型网站建设
  • 做婚恋网站的思路关键字优化
  • 如何做外贸成都做整站优化
  • 电商网站建设课程建筑网片的用途有哪些
  • 想开个网站建设的公司中国建设银行网站维护
  • 文登区住房和城乡建设局网站网站建设咨询费用
  • 单页网站开发丽江建网站
  • 营销型网站建设概述wordpress前台空白
  • 交友高端网站建设哈尔滨建设局官网
  • 宁波怎么建网站模板什么是网络营销最不能忽视的市场细分标准
  • 怎么做网站导航地图网络科技有限公司的简介
  • 锦州哪家做网站西安市住房和城乡建设局门户网站
  • 江华县网站开发旅游网站推荐排行榜
  • 南通通州区城乡建设局网站看不到的网站
  • 镇江海绵城市建设官方网站官方网站制作
  • 装修公司网站建设的意义软件商店oppo官方下载
  • 公司和网站备案查询密码wordpress 雪花插件
  • wordpress主题样式乱深圳整站seo
  • 装修设计案例网站深圳网站推广策划
  • 电子商务网站服务器微博推广方式有哪些
  • 局网站内容建设考核网站开发外包公司坑
  • 商务网站建设期末作业wordpress固定链接404 nginx
  • 网站建设开发三层架构网易邮箱能登企业邮箱吗
  • php网站开发自学网站设计亮点