server.py
import eventlet
import asyncio
eventlet.monkey_patch()
import socketio
import eventlet.wsgi
sio = socketio.Server(async_mode='eventlet', cors_allowed_origins='*') # 指明在evenlet模式下
@sio.event
def connect(sid, environ):
print(f"connect, sid={sid}, environ={environ}")
@sio.event
def disconnect(sid):
print('disconnect ', sid)
@sio.on('hello')
def hello(sid, data):
print('server receive:', data)
print("-----")
print(data.get("data"))
sio.emit('world', {'data': 'world'})
app = socketio.Middleware(sio)
eventlet.wsgi.server(eventlet.listen(('127.0.0.1', 9001)), app)
client.py
import socketio
sio = socketio.Client()
@sio.on('connect')
def on_connect():
print("client connect")
@sio.on('world')
def world(data):
print('client receive:', data)
sio.connect('http://127.0.0.1:9001')
sio.emit("hello", {"data": "hello"})
print('client send hello success')