赞
踩
两种协议在一个工程中实现
服务端
from flask import Flask, Response from flask_socketio import SocketIO, emit app = Flask(__name__) socketio = SocketIO(app) @socketio.on('server') def endpoint_socket(data): print(f'客户端发送来的消息:{data}') emit('client', {'message': 'I am server'}) @app.route("/http/", methods=["GET", "POST"]) def endpoint_http(): print('调用http') return Response('I am server') socketio.run(app, host="0.0.0.0", port=8000, debug=True)
通过flask_socketio提供的SocketIO封装flask的app实现了websocket,同时不影响flask的http接口。
import time import socketio num = 1 sio = socketio.Client() @sio.on('client') def on_message(data): global num print(f'第{num}次发送') num += 1 time.sleep(1) print('client received a message!', data) sio.emit('server', {'message': 'who are you', 'session_id': ''}) @sio.event def connect_error(info): print(f"The connection failed: {info}") @sio.event def disconnect(): print('disconnected from server') sio.connect('http://localhost:8000') sio.emit('server', {'message': 'I am client'})
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。