#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ ADXP WebSocket连接测试脚本 直接测试WebSocket连接,不进行登录认证 """ import json import time try: # 尝试导入websocket-client库 from websocket import WebSocketApp print("✅ 成功导入websocket库") except ImportError: try: # 备用导入方式 import websocket from websocket import WebSocketApp print("✅ 通过备用方式导入websocket库") except ImportError: print("❌ 未找到websocket库,请安装: pip install websocket-client") exit(1) def on_message(ws, message): """处理接收到的消息""" print(f"📥 收到消息: {message[:100]}...") try: # 尝试解析JSON消息 data = json.loads(message) if isinstance(data, list): print(f" 解析到 {len(data)} 条航班消息") for i, msg in enumerate(data): service_code = msg.get('serviceCode', 'N/A') print(f" [{i+1}] 服务代码: {service_code}") # 显示部分消息内容 content = msg.get('content', '') if content: print(f" 内容预览: {content[:50]}...") else: print(f" 消息内容: {data}") except json.JSONDecodeError: print(f" 非JSON消息: {message}") def on_error(ws, error): """处理错误""" print(f"❌ WebSocket错误: {error}") def on_close(ws, close_status_code, close_msg): """处理连接关闭""" print(f"🔒 连接已关闭: 状态码={close_status_code}, 消息={close_msg}") def on_open(ws): """处理连接打开""" print("✅ WebSocket连接已建立") print("🚀 开始监听消息...") def main(): """主函数""" # WebSocket URL ws_url = "ws://localhost:8086/ws/flight-notifications" print(f"🚀 正在连接到ADXP适配器WebSocket服务: {ws_url}") # 创建WebSocket连接 ws = WebSocketApp(ws_url, on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close) try: # 启动连接(阻塞) ws.run_forever() except KeyboardInterrupt: print("\n⚠️ 用户中断") ws.close() except Exception as e: print(f"❌ 测试过程中发生错误: {e}") import traceback traceback.print_exc() ws.close() if __name__ == "__main__": main()