使用flask_socketio实现服务端向客户端定时推送

 websocket连接是客户端与服务器之间永久的双向通信通道,直到某方断开连接。

  双向通道意味着在连接时,服务端随时可以发送消息给客户端,反之亦然,这在一些需要即时通讯的场景比如多人聊天室非常重要。

  flask_socketio实现了对websocket的封装,它可以让运行flask应用的服务端和客户端建立全双工通道。

  flask_socketio是一个python库,是flask框架的扩展。

一、安装

pip install flask-socketio

 

二、实现对flask的封装

复制代码
from flask import Flask, render_template from flask_socketio import SocketIO,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 import Flask, render_template from flask_socketio import SocketIO,emit app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app)  @socketio.on('connect', namespace='/test_conn') def test_connect():         socketio.emit('server_response',                       {'data': ‘connected’},namespace='/test_conn')  if __name__ == '__main__'

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信