flask + websocket
简易后端
# 不需要记住 但是要知道是什么模块驱使Flask 支持Websocket
# gevent-websocket
# 以下代码 和 gevent-websocket 使用方式 请记录在案
from geventwebsocket.handler import WebSocketHandler
from geventwebsocket.server import WSGIServer
from geventwebsocket.websocket import WebSocket # 语法提示from flask import Flask, request, render_templateapp = Flask(__name__)socket_list = []@app.route("/ws")
def ws():sock = request.environ.get("wsgi.websocket") # type:WebSocketsocket_list.append(sock)print(socket_list)# 1 : 连接打开# 2 : 客户端主动关闭连接# 3 : 连接关闭 由服务器发起# 0 : 连接中。。。。。。while 1:try:msg = sock.receive() # helloexcept:socket_list.remove(sock)breakfor so in socket_list:if so == sock:continuetry:so.send(msg)except:continuereturn "200OK"# return "200 OK"@app.route("/")
def index():return render_template("ws_client.html")if __name__ == '__main__':# app.run()http_serv = WSGIServer(("0.0.0.0", 9527), app, handler_class=WebSocketHandler) # environmenthttp_serv.serve_forever()
简易前端
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>Bootstrap 101 Template</title><!-- Bootstrap -->
</head>
<body>
<h1>你好,世界!</h1>
<input type="text" id="text"> <button id="send">点击发送消息</button>
<div id="content_list"></div>
</body>
<script type="application/javascript">var ws = new WebSocket("ws://192.168.14.26:9527/ws");// 回调函数// onopen websocket连接建立完成 status == 1// ws.onopen = function () {// ws.send("Hello");// };// onmessage websocket 接收到消息时 执行ws.onmessage = function (eventMessage) {var s = eventMessage.data;var p = document.createElement("p");p.innerText = s;document.getElementById("content_list").appendChild(p);};// ws.onclose// ws.send("123");document.getElementById("send").addEventListener("onclick",function () {var st = document.getElementById("text").value();ws.send(st);})
</script>
</html>
flask + websocket相关推荐
- flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163 首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Ce ...
- Flask+geventwebsocket实现群聊与单聊功能
Flask+WebSocket 实现群聊与单聊功能 群聊 py文件 from flask import Flask ,request,render_template from geventwebsoc ...
- WebSocket is already in CLOSING or CLOSED state解决方案
使用flask + websocket来进行前后端交互的项目 前端发送send的时候,websocket一连接就中断,测试了心跳设置相应时间等各种方法,都没用,最后发现原来是flask的版本太高导致和 ...
- Django Channels 入门指南
http://www.oschina.NET/translate/in_deep_with_django_channels_the_future_of_real_time_apps_in_django ...
- Flask--WebSocket
flask websocket websocket原理 Socket: FTP - 文件服务 Django Flask Http - TCP: 1.一次请求 一次响应 断开 2.客户端永远处于主动 ...
- 在flask上使用websocket
在flask上使用websocket Flask-Sockets和Flask-SocketIO之间的主要区别在于前者仅仅将WebSocket协议(通过使用gevent-websocket项目)进行包装 ...
- flask总结之session,websocket,上下文管理
1.关于session flask是带有session的,它加密后存储在用户浏览器的cookie中,可以通过app.seesion_interface源码查看 from flask import Fl ...
- 三维交互可视化平台(智慧海上牧场平台)学习开发Flask+Vue+Echarts+Mysql+websocket 实战(四)
前言 三维交互可视化平台(智慧海上牧场平台)学习开发之Vue(一) 三维交互可视化平台(智慧海上牧场平台)学习开发之Flask+Vue+Mysql(二) 三维交互可视化平台(智慧海上牧场平台)学习开发 ...
- flask+vue+websocket+neo4j+torch模型项目常见报错
一.vue和flask部分 webpack-dev-server 不是内部或外部命令,也不是可运行的程序 - 删除node_modules 和 npm-shrinkwrap.json - npm sh ...
- python Flask 11 Flas使用gevent-websocket 实现 Websocket
之前不知道在哪个场合下提到过如何从web后台向前台推送消息.听闻了反向ajax技术这种模式之后,大呼神奇,试了一下之后发现也确实可以用.不过,反向ajax的代价也很明显,只要客户端还和服务端要有信息交 ...
最新文章
- (C++)1021 个位数统计
- 【数据库】基础知识总结
- 线上慢查询?试试这几个优化思路!
- “斐波那契数列”的两种算法
- 基于迁移学习的反欺诈方法研究
- jmeter接口自动化部署jenkins教程
- 二分二题-P1678,P3902【二分,LIS】
- Nature | IL-27直接靶向脂肪细胞以促进产热而改善肥胖
- linux dhcpd 设置 关于 subnet
- 【华为云技术分享】STM32L476移植华为LiteOS系列教程------背景知识 1
- Sublime Text 3的中文显示乱码问题
- 一文学会 Prometheus:开源系统监视和警报工具包!
- java,类的构造方法
- BZOJ2325[ZJOI2011]道馆之战——树链剖分+线段树
- Hoverfly - 微服务虚拟化示例
- 第一章 DHT11温湿度传感器的使用
- YOLOv3原理详解(绝对通俗易懂)2021-07-01
- SpringBoot中出现‘@‘ that cannot start any token. (Do not use @ for indentation)....
- SourceTree 删除记住的账户
- windows系统锁定计算机组合键,WIN键间断性触发在锁定状态!!
热门文章
- mysql 插入毫秒数据_MySQL存储毫秒数据的方法
- C++ 代码整洁之道
- linux 图片转视频教程,如何在Ubuntu上转换图像、音频和视频格式
- 小米开发版安装magisk_小米9手机不用解锁安装Magisk工具的教程
- 潮流计算和最优潮流计算
- linux车机carplay模块,卸甲科技UI2.0版本Linux车机发布
- 数值分析笔记 第一章 数值分析与科学计算引论
- 离散数学第六版第er章偶数题答案_离散数学第2章习题解答
- ubuntu 下安装ibus 中文输入法
- codeblocks下载安装与解决codeblocks找不到编译器的方法