Python: flask-socketio使用Websocket协议进行通讯

简介: Python: flask-socketio使用Websocket协议进行通讯

文档:


PyPI: https://pypi.org/project/Flask-SocketIO/

Github: https://github.com/miguelgrinberg/Flask-SocketIO

doc: https://flask-socketio.readthedocs.io

socket.io: https://socket.io/


安装

pip install flask-socketio gevent-websocket

代码实例

from flask import Flask, render_template, request
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
app.jinja_env.auto_reload = True
socketio = SocketIO(app)
@app.route('/')
def index():
    return render_template('index.html')
@app.route('/send_all')
def send_all():
    """
    广播
    :return: 
    """
    message = request.args.get('message')
    socketio.send(message)
    return {'status': 'ok'}
@app.route('/send')
def send_message():
    """
    单独发送
    :return:
    """
    sid = request.args.get('sid')
    message = request.args.get('message')
    socketio.send(message, to=sid)
    return {'status': 'ok'}
@socketio.on('connect')
def connect():
    print('connect')
    socketio.send({'sid': request.sid})
@socketio.on('disconnect')
def disconnect():
    print('disconnect')
@socketio.on('message')
def handle_message(data):
    print(data)
    socketio.send({'data': data})
if __name__ == '__main__':
    socketio.run(app, debug=True)

Http 发送测试请求

import requests
params = {
    'sid': 'm4AymrH2TIFHCcQNAAAF',
    'message': 'send'
}
res = requests.get('http://localhost:5000/send', params=params)
print(res.text)
params = {
    'message': 'send_all'
}
res = requests.get('http://localhost:5000/send_all', params=params)
print(res.text)
相关文章
|
21天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
98 7
Jmeter实现WebSocket协议的接口测试方法
|
5天前
|
JSON 测试技术 数据库
|
7天前
|
前端开发 JavaScript 安全
深入理解Python Web开发中的前后端分离与WebSocket实时通信技术
在现代Web开发中,前后端分离已成为主流架构,通过解耦前端(用户界面)与后端(服务逻辑),提升了开发效率和团队协作。前端使用Vue.js、React等框架与后端通过HTTP/HTTPS通信,而WebSocket则实现了低延迟的全双工实时通信。本文结合Python框架如Flask和Django,探讨了前后端分离与WebSocket的最佳实践,包括明确接口规范、安全性考虑、性能优化及错误处理等方面,助力构建高效、实时且安全的Web应用。
20 2
|
7天前
|
前端开发 Python
前后端分离的进化:Python Web项目中的WebSocket实时通信解决方案
在现代Web开发领域,前后端分离已成为一种主流架构模式,它促进了开发效率、提升了应用的可维护性和可扩展性。随着实时数据交互需求的日益增长,WebSocket作为一种在单个长连接上进行全双工通讯的协议,成为了实现前后端实时通信的理想选择。在Python Web项目中,结合Flask框架与Flask-SocketIO库,我们可以轻松实现WebSocket的实时通信功能。
19 2
|
7天前
|
JavaScript 前端开发 UED
WebSocket在Python Web开发中的革新应用:解锁实时通信的新可能
在快速发展的Web应用领域中,实时通信已成为许多现代应用不可或缺的功能。传统的HTTP请求/响应模式在处理实时数据时显得力不从心,而WebSocket技术的出现,为Python Web开发带来了革命性的变化,它允许服务器与客户端之间建立持久的连接,从而实现了数据的即时传输与交换。本文将通过问题解答的形式,深入探讨WebSocket在Python Web开发中的革新应用及其实现方法。
20 3
|
7天前
|
Python
python flask跨域处理
python flask跨域处理
20 1
|
10天前
|
前端开发 API Python
WebSocket技术详解:如何在Python Web应用中实现无缝实时通信
在Web开发的广阔领域中,实时通信已成为许多应用的核心需求。传统的HTTP请求-响应模型在实时性方面存在明显不足,而WebSocket作为一种在单个长连接上进行全双工通信的协议,为Web应用的实时通信提供了强有力的支持。本文将深入探讨WebSocket技术,并通过一个Python Web应用的案例分析,展示如何在Python中利用WebSocket实现无缝实时通信。
16 2
|
16天前
|
JSON 测试技术 数据库
Python的Flask框架
Python的Flask框架
|
21天前
|
JSON API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
29 6
|
21天前
|
Python
使用Python和Flask构建简单的Web应用
使用Python和Flask构建简单的Web应用
28 6