2025-07-29 18:28:40 +08:00
|
|
|
|
import socketio
|
|
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
# 创建SocketIO客户端
|
|
|
|
|
sio = socketio.SimpleClient()
|
|
|
|
|
|
|
|
|
|
print('连接WebSocket并监听事件...')
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 连接到服务器
|
|
|
|
|
print('正在连接到192.168.1.173:5000...')
|
|
|
|
|
sio.connect('http://192.168.1.173:5000', wait_timeout=10)
|
|
|
|
|
print('WebSocket连接成功!')
|
|
|
|
|
|
2025-08-02 16:52:17 +08:00
|
|
|
|
# 发送启动视频流事件
|
|
|
|
|
sio.emit('start_video')
|
|
|
|
|
print('已发送start_video事件,等待5秒接收数据...')
|
2025-07-29 18:28:40 +08:00
|
|
|
|
|
|
|
|
|
# 等待并接收事件
|
|
|
|
|
for i in range(5):
|
|
|
|
|
try:
|
|
|
|
|
# 接收事件
|
|
|
|
|
event = sio.receive(timeout=1)
|
|
|
|
|
if event:
|
|
|
|
|
event_name, data = event
|
|
|
|
|
print(f'收到事件: {event_name}, 数据类型: {type(data)}')
|
2025-08-02 16:52:17 +08:00
|
|
|
|
if event_name == 'video_frame' and isinstance(data, dict) and 'image' in data:
|
2025-08-03 21:50:50 +08:00
|
|
|
|
pass # 图像数据已接收
|
2025-08-02 16:52:17 +08:00
|
|
|
|
elif event_name == 'video_status':
|
|
|
|
|
print(f'视频状态: {data}')
|
2025-07-29 18:28:40 +08:00
|
|
|
|
except socketio.exceptions.TimeoutError:
|
|
|
|
|
print(f'等待事件超时 ({i+1}/5)')
|
|
|
|
|
|
2025-08-02 16:52:17 +08:00
|
|
|
|
# 发送停止视频流事件
|
|
|
|
|
sio.emit('stop_video')
|
|
|
|
|
print('已发送stop_video事件')
|
2025-07-29 18:28:40 +08:00
|
|
|
|
|
|
|
|
|
# 等待停止状态事件
|
|
|
|
|
try:
|
|
|
|
|
event = sio.receive(timeout=2)
|
|
|
|
|
if event:
|
|
|
|
|
event_name, data = event
|
|
|
|
|
print(f'收到停止事件: {event_name}, 数据: {data}')
|
|
|
|
|
except socketio.exceptions.TimeoutError:
|
|
|
|
|
print('等待停止事件超时')
|
|
|
|
|
|
|
|
|
|
sio.disconnect()
|
|
|
|
|
print('WebSocket连接已断开')
|
|
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f'测试过程中发生错误: {e}')
|
|
|
|
|
|
|
|
|
|
print('WebSocket测试完成')
|