# server端
from flask import Flask
from flask_socketio import SocketIO
app = Flask(__name__)
app.config["SECRET_KEY"] ="gsagdgasg436fgsdh"
socketio = SocketIO(app)
# 当客户端连接时触发
@socketio.on("connect")
def handle_connect():
print('Client connected')
# 当客户端断开连接时触发
@socketio.on("disconnect")
def handle_disconnect():
print("Client disconnected")
# 处理客户端发送的消息
@socketio.on("message")
def handle_message(data):
print("client -> server message:",data)
#向客户端发送响应
socketio.emit("response",{'data':'Server reeived:'+data})
if __name__ == '__main__':
print("socketio 服务启动")
socketio.run(app,host='0.0.0.0',port=5000)
# 客户端
import socketio
# 创建socket.IO客户端实例
sio = socketio.Client()
# 连接成功时触发
@sio.event
def connect():
print("Connected to server")
# 向服务器发送消息
sio.emit("message","hello,Server")
# 收到服务器响应时触发
@sio.event
def response(data):
print("server -> client:",data)
# 断开连接时触发
@sio.event
def disconnect():
print("disconnected from server")
exit(0)
# 连接到服务器
sio.connect('http://localhost:5000')
# 保持连接时触发
sio.wait()
通过socketio实例和flask实例绑定,在使用flask api接口的同时也支持websocket实时双向通信