【websocket - Tornado】简易聊天应用
1、背景
项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。
- Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主要用于传统的Web应用;
- Django比较重,但是功能很强大,channels模块就可以用来处理websocket;
- Tornado主要用于实时ebSockets、长轮询等场景;
由于不涉及复杂的业务场景,只需要简单的收发消息即可,所以本文以Tornado框架为例来进行说明,后续可能会补充django channels的websocket。
2、 环境准备
python:3.6
tornado:pip3 install tornado
3、代码示例
整个站点的结构就是:
后端:tornado
前端:html5原生的websocket
目录结构:
ws.py:
# @Time : 2023/8/5 9:38
# &
相关文章:
![](https://img-blog.csdnimg.cn/3bc1960a674c499594fc934961de40df.png)
【websocket - Tornado】简易聊天应用
1、背景 项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主…...
![](https://img-blog.csdnimg.cn/e823181b2d9e4c1eadd17f31f2bc411b.png)
TCP 三次握手,四次挥手
1、三次握手 第一次握手 SYN 等于1,SeqX 第二次握手 SYN等于1 ACK等于1,SeqY,AckX1 第三次SYN等于0 ACK等于1,SeqX1,AckY1 ackRow都是对应请求seqraw,三次握手后,Seq就是服务器前一个包中的ac…...
![](https://www.ngui.cc/images/no-images.jpg)
Nginx之Rewrite重定向
常见的Nginx正则表达式 ^:匹配输入字符串的起始位置 $:匹配输入字符串的结束位置 *:匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” :匹配前面的字符一次或者多次。如“ol”能匹配"ol"及“oll”、&q…...
![](https://img-blog.csdnimg.cn/81a26ecd4d9a402aa9bc9c5bf98fb53a.png)
uni-app微信小程序开发自定义select下拉多选内容篇
分享-2023年高级前端进阶:前端登顶之巅-最全面的前端知识点总结站点 *分享一个使用比较久的🪜 技术框架公司的选型:uni-app uni-ui vue3 vite4 ts 需求分析:微信小程序-uni-ui内容 1、创建一个自定义的下拉,支持多…...
![](https://img-blog.csdnimg.cn/c9eb2f7125f047519a5ed02503cbc9cf.png)
VUE+view table.exportCsv()导出.csv文档时如何防止数据格式为科学计数
当使用table.exportCsv()方法导出数据时,出现科学计数法问题,像电话号码,身份证号码等,当数据大于15位后面的会用0替代。 针对这一问题,解决方法如下:就是再数字前加上制表符“\t”注意双引号,…...
![](https://www.ngui.cc/images/no-images.jpg)
Java基础练习六(排序)
排序 1. 第n大数 给定一个整数数组,输入一个值 n, 输出数组中第 n 大的数。 import java.util.Arrays; import java.util.Scanner;public class Work0801 {public static void main(String[] args) {int[] arr {2,3,1,8,3,9,6};// 冒泡排序,第n大数for (int i 0; …...
![](https://img-blog.csdnimg.cn/0ddf3ff96cdf4615b1dd1e8311eede50.png)
【Go】Go数据操作 - 处理JSON文件
目录 何为JSON 编码JSON 实践时刻 解码JSON 实践时刻 延伸拓展 何为JSON JSON (JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。JSON最初是JavaScript的一部分,后由于便于快速编写的特性,被开发者独立出来。基本上所有的语…...
![](https://img-blog.csdnimg.cn/94e936f6e94f4c1ca736ac1f64bb8831.png)
服务器之LNMP
lnmp的构成 L:linux系统,操作系统。 N:nginx网站服务,前端,提供前端的静态页面服务。同时具有代理,转发的作用。 转发:主要是转发后端请求。转发到PHP。nginx没有处理动态资源的功能,他有可以支持转发动态请求的模块。 M&…...
![](https://img-blog.csdnimg.cn/a8f1a11fb2fd4b599739aea4561980a6.png)
恒运资本:定向增发一般多久完成?
随着现代企业的不断发展壮大,企业需求的资金也越来越多,而定向增发成为了企业融资的一个不可或缺的方法之一。那么,定向增发一般需求多长时刻来完结呢?本文将从多个角度进行剖析,以期对此问题有更深化的了解。 一、 定…...
![](https://img-blog.csdnimg.cn/b7ba64bd98c949329a68223873542c3f.png)
mysql进阶篇(二)
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
考研C语言进阶题库——更新31-32题
目录 31.姜太公门前有一个池塘,他每天都会去池塘里面钓鱼,他钓鱼技术非常高,距离水面五米的深度之内,包括五米的鱼,他都能钓到池塘里面一共有n条鱼,给出每条鱼距离水面的高度,问姜太公一次能钓…...
![](https://www.ngui.cc/images/no-images.jpg)
机动车号牌正则表达式(兼容新能源车牌)
说明:“|”前面面是绿牌车(8位)规则,“|”后面是蓝牌车(7位)规则。 ([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]A-Z)|(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵…...
![](https://img-blog.csdnimg.cn/acb36460869441caa2ab275f41b10060.png)
idea如何上传项目到github(超详细)
idea如何上传项目到github 1、IDEA配置2、项目上传到本地仓库2.1、创建本地git仓库2.2、Add操作2.3、Commit操作 3、项目上传到Github4、拿到登录Github的token 1、IDEA配置 File-Settings-VersionControl-Git Git的安装路径下bin目录下的git.exe可执行文件 可以直接点 Gene…...
![](https://img-blog.csdnimg.cn/35fcc5bcaaf748c49fbd689e1e88f75e.png)
护网专题简单介绍
护网专题简单介绍 一、护网红蓝队介绍1.1、网络安全大事件1.2、护网行动由来1.3、护网行动中的角色二、红队介绍2.1、红队所需技能2.2、红队攻击流程 三、蓝队介绍3.1、蓝队所需技能3.2、蓝队防守四阶段3.3、蓝队前期准备 四、常见安全厂商介绍4.1、常见安全厂商 五、常见安全产…...
![](https://img-blog.csdnimg.cn/5a43175e3c1d4afd89ecdfc48f24702c.png)
GO学习之 网络通信(Net/Http)
GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、 文章目录 GO系列前言一、H…...
![](https://img-blog.csdnimg.cn/65f0df3082e146119c3a6ee77beb2d52.png)
<dependency> idea中为什么这个变黄色
在IDE中,当你的代码出现黄色高亮时,通常表示存在警告或建议的提示。对于Maven的<dependency>标签来说,黄色高亮可能有以下几种原因: 依赖项未找到:黄色高亮可能表示IDE无法找到指定的依赖项。这可能是由于配置错…...
![](https://www.ngui.cc/images/no-images.jpg)
SA8000 社会责任要求之健康安全准则
【SA8000 社会责任要求之健康安全准则】 健康和安全 准则 3.1 组织应提供一个安全和健康的工作环境,并应采取有效的措施防止潜在的健康和安全事故和职业伤害,或在工作的过程中发生的或引起的疾病。基于产业相关的安全与健康的知识以及任何特定的危害&…...
![](https://img-blog.csdnimg.cn/7331b935e8a849e68fd53935ef5164b8.png)
SpringMVC的架构有什么优势?——控制器(三)
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
![](https://img-blog.csdnimg.cn/96db37a98223454fa7aded351e3d72e1.png)
AI和ChatGPT:人工智能的奇迹
AI和ChatGPT:人工智能的奇迹 引言什么是人工智能?ChatGPT:AI的语言之王ChatGPT的工作原理ChatGPT的优势和挑战AI和ChatGPT的未来展望结论 引言 人工智能(Artificial Intelligence,简称AI)是一项令人兴奋的…...
![](https://img-blog.csdnimg.cn/img_convert/e0870c7af15c1d084cfb74e506ab4dff.png)
掌握 JVM 的参数及配置
点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ JVM(Java虚拟机)是Java编程语言的核心组件之一,它负责执行Java程序,并提供一系列参数和配置选项,可以调整Java程…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.5/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N6B9)
如何高性能、高效率地实现3D Web轻量化?
随着互联网和Web技术的发展,3D Web应用的需求越来越多。然而,复杂的3D模型在Web上展示和交互通常需要大量的带宽和计算资源。为了解决这一问题,HOOPS技术作为一套专业的3D图形技术开发工具包,发挥着关键作用。本文将探讨HOOPS技术…...
![](https://img-blog.csdnimg.cn/c655e13270e04e5b8862289b5232fe6b.png)
【Linux 网络】 传输层协议之TCP协议 TCP的三次握手和四次挥手
TCP协议 TCP协议段格式谈谈什么是 “可靠” 和 “不可靠”TCP协议段——序号与确认序号TCP协议段——窗口大小TCP协议段 —— 六个标志位确认应答机制(ACK)超时重传机制连接管理机制TCP 的三次握手四次挥手TCP三次握手四次挥手总结图 滑动窗口流量控制拥…...
![](https://img-blog.csdnimg.cn/205ea34918a344dfa85d9d8c4ed9411b.png)
git仓库与本地暂存区的同步问题
向下同步 对于远程仓库的项目,初始化一个配置文件,配置远程仓库及相关信息,赋值远程仓库的地址,使用git pull命令即可拉取仓库代码。 git pull [remote_addr] 该部分完成向下同步 向上同步 向上同步时会遇到很多的问题…...
![](https://www.ngui.cc/images/no-images.jpg)
MATLAB算法实战应用案例精讲-【图像处理】图像分类模型-LeNetAlexNetVGG
目录 LeNet 模型介绍 模型结构 模型实现 模型特点 模型指标 AlexNet...
![](https://www.ngui.cc/images/no-images.jpg)
ArcGIS API for JavaScript 4.x 教程(二)切换基础地图图层
了解如何更改地图中的基础地图图层。 基础地图图层: 基础地图层是用于访问和显示来自基础地图层服务的数据的层。它为地图或场景提供视觉和地理上下文,通常包含具有管理边界和地名的全局数据。 基本地图图层服务提供了许多基本地图图层样式,例…...
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot——如何读写使用JSON文件保存的数据
文章目录 1. 将数据写入JSON文件2. 从JSON文件读取数据2.1 读取单个对象2.2 读取对象列表 1. 将数据写入JSON文件 要将数据写入JSON文件,可以使用Spring Boot中提供的Jackson库。Jackson库是处理JSON的Java库,可以轻松地将对象转换为JSON字符串ÿ…...
![](https://img-blog.csdnimg.cn/45cd30ae16f94ef9bc94ab54d24e0207.png)
SDU Crypto School - 计算不可区分性1
Encryption: Computational security 1-4 主讲人:李增鹏(山东大学) 参考教材:Jonathan Katz, Yehuda Lindell, Introduction to Modern Cryptography - Principles and Protocols. 什么是加密 首先,加密方案的目的在于…...
![](https://www.ngui.cc/images/no-images.jpg)
win11 vscode torch 编译遇错
1. 错误内容: Failed to build pc-util ERROR: Could not build wheels for pc-util, which is required to install pyproject.toml-based projects NativeCommandExitException: Program “pip.exe” ended with non-zero exit code: 2.问题分析: pip出…...
![](https://img-blog.csdnimg.cn/230e14e5b3154e9e9e8f5313ba3c0add.bmp#pic_center)
Markdown系列之Flowchat流程图
一.欢迎来到我的酒馆 介绍Markdown的Flowchart流程图语法。 目录 一.欢迎来到我的酒馆二.什么是Flowchart三.更进一步 二.什么是Flowchart 2.1 Flowchart是一款基于javascript的工具,使用它可以用代码创建简单的流程图。具体信息可以查看flowchart官网:…...
![](https://img-blog.csdnimg.cn/b19b38ddd2704bc99faba6711dc9f122.png)
小程序wx:else提示 Bad attr `wx
问题:以下wx:for里的wx:if , wx:else 会报这个错:Bad attr wx <scroll-view class"scroll1" scroll-x enable-flex"true"><view wx:if"{{playlist.length>0}}" class"item" wx:for"…...
![](http://tool.chinaitlab.com/UploadFiles_9734/200605/20060508115026932.jpg)
初学者怎么做php网站/东莞网站建设推广技巧
七种办法减少Word容量(转)利用Word生成的文档,每页在20KB左右,但看到用记事本生成的文档,相同的内容只有1KB左右,能让Word也减减肥吗?其实我们可以采用一些行之有效的方法来减小Word文档的容量。 1.取消快速…...
![](https://img-blog.csdnimg.cn/img_convert/ecf60d06be502d8301c30e2efcec3b94.png)
wordpress谷歌云/怎么自己做一个网站
华为一面:1、图的表示方式?(1)邻接表法:邻接表的核心思想就是针对每个顶点设置一个邻居表。以上面的图为例,这是一个有向图,分别有顶点a, b, c, d, e, f, g, h共8个顶点。使用邻接表就是针对这8个顶点分别构建邻居表&a…...
衡水做wap网站/汕头seo排名收费
1. 概述 艿艿信奉的话很多,其中很重要的一条:在考虑高性能之前,一定要做高可用。很多时候,我们常常陷入追求一个功能或者系统的高性能,却忽略了高可用。 为什么在这篇文章的开头提到这个段呢?对于任何系统…...
![](https://github.com/Unity-Technologies/PostProcessing/wiki/images/lensdistortion.png)
网站建设推广怎么做/上海网站建设开发
Lens Distortion 透镜扭曲 本文档主要是对Unity官方手册的个人理解与总结(其实以翻译记录为主:>) 仅作为个人学习使用,不得作为商业用途,欢迎转载,并请注明出处。 文章中涉及到的操作都是基于Unity2018…...
![](/images/no-images.jpg)
怎么用域名做邮箱网站/包就业的培训机构
Mysql常用函数的汇总,可看下面文章 https://www.cnblogs.com/poloyy/p/12890763.html substring 的作用 截取指定范围的字符串,学过Java的同学,对这个应该不陌生,字符串函数也有一个substring,作用一样哈 substring 的…...
![](https://img-blog.csdnimg.cn/211225be36d54902aabb212d838ad6d0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3VuaHV3aA==,size_20,color_FFFFFF,t_70,g_se,x_16)
时时彩网站建设教程/东莞百度快照优化排名
备个份 最后生成的安装包exe获取位置在:...