websocket连接是客户端与服务器之间永久的双向通信通道,直到某方断开连接。
双向通道意味着在连接时,服务端随时可以发送消息给客户端,反之亦然,这在一些需要即时通讯的场景比如多人聊天室非常重要。
flask_socketio实现了对websocket的封装,它可以让运行flask应用的服务端和客户端建立全双工通道。
flask_socketio是一个python库,是flask框架的扩展。
一、安装
pip install flask-socketio
二、实现对flask的封装
from flask importFlask, render_templatefrom flask_socketio importSocketIO,emit
app= Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'socketio=SocketIO(app)if __name__ == '__main__':
socketio.run(app, debug=True)
socketio.run()函数封装了flask的web服务器的启动
三、服务端向客户端推送
socketio的两个函数send()和emit()都可以实现消息发送,前者用于无名事件,后者用于命名的事件。
事件是消息的名称。如果把消息比做信件,事件就是贴在信封上的标识,这个标识规定了信件送往客户端或服务端的某个函数。
from flask importFlask, render_templatefrom flask_socketio importSocketIO,emit
app&