44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from flask import Flask
|
|
from flask_socketio import SocketIO, emit
|
|
import logging
|
|
|
|
# 配置日志
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
app = Flask(__name__)
|
|
app.config['SECRET_KEY'] = 'test-secret-key'
|
|
socketio = SocketIO(app, cors_allowed_origins='*', logger=True, engineio_logger=True)
|
|
|
|
@socketio.on('connect')
|
|
def handle_connect():
|
|
print('=== CLIENT CONNECTED ===', flush=True)
|
|
logger.info('客户端已连接')
|
|
emit('connect_response', {'message': '连接成功'})
|
|
|
|
@socketio.on('disconnect')
|
|
def handle_disconnect():
|
|
print('=== CLIENT DISCONNECTED ===', flush=True)
|
|
logger.info('客户端已断开连接')
|
|
|
|
@socketio.on('start_video')
|
|
def handle_start_video(data=None):
|
|
print('=== START VIDEO EVENT RECEIVED ===', flush=True)
|
|
print(f'Data: {data}', flush=True)
|
|
logger.info('=== START VIDEO EVENT RECEIVED ===')
|
|
logger.info(f'Data: {data}')
|
|
emit('video_status', {'status': 'received', 'message': 'start_video事件已接收'})
|
|
return {'status': 'success'}
|
|
|
|
@socketio.on('test_event')
|
|
def handle_test_event(data=None):
|
|
print('=== TEST EVENT RECEIVED ===', flush=True)
|
|
logger.info('=== TEST EVENT RECEIVED ===')
|
|
emit('test_response', {'message': 'Test event received'})
|
|
|
|
if __name__ == '__main__':
|
|
print('启动测试Socket.IO服务器...')
|
|
socketio.run(app, host='0.0.0.0', port=5001, debug=False) |