为flask加入WebSockets通信

本文介绍了如何在Flask应用中集成WebSockets通信,以实现实时更新网页内容而无需页面刷新。通过Flask-SocketIO库,服务端能够主动通知客户端数据更新,从而避免了传统的客户端轮询方式,提高了效率并减少了资源消耗。通过一个简单的示例,展示了如何设置和运行WebSockets应用。
摘要由CSDN通过智能技术生成

构建web服务时,有时候需要即时更新网页内容,如:通知、新加信息等,通过AJAX可以实现不刷新网页的情况下数据更新,但对于数据何时需要更新,一种方式是客户端不断轮询,另一种方式是服务端数据更新后通知客户端进行数据更新,显然后者更优雅,消耗更少资源,这么好的方式显然已经被实现了,DuangDuangDuangWebSockets登场~


WebSocket一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 是独立的、创建在 TCP 上的协议,和 HTTP 的唯一关联是使用 HTTP 协议的101状态码进行协议切换,
使用的 TCP 端口是80,可以用于绕过大多数防火墙的限制。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端直接向客户端推送数据而不需要客户端进行请求,
在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,
并允许数据进行双向传送。



对于flask来说,可以通过flask_socketio实现上述效果,首先是pip install flask_socketio(flask_socketio)。

Demo实现如下:

# app.py
import datetime
from threading import Lock

from flask import Flask, render_template
from flask_socketio import SocketIO, emit


app = Flask(__name__, template_folder="./")
socketio = SocketIO(app)

_thread = None
lock = Lock()

@app.route("/")
def index():
	return render_template("index.html"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值