Skip to main content
Glama
websocket-test.ts3.16 kB
/** * WebSocket连接测试脚本 * 在浏览器控制台中运行此脚本来测试连接稳定性 */ import { websocketService } from "@/services/websocket"; // 测试WebSocket连接稳定性 async function testWebSocketConnection() { console.log("🔍 开始WebSocket连接测试..."); const startTime = Date.now(); let connectionLost = false; const subscriptionConfirmed = false; // 监听连接状态 websocketService.on("connect", () => { console.log("✅ WebSocket连接成功"); }); websocketService.on("disconnect", () => { console.log("❌ WebSocket连接断开"); connectionLost = true; }); // 测试订阅 const testServerId = "test-server-id"; try { // 连接 await websocketService.connect(); console.log("📡 WebSocket连接建立"); // 等待一秒确保连接稳定 await new Promise((resolve) => setTimeout(resolve, 1000)); if (connectionLost) { console.error("❌ 连接在1秒内丢失"); return false; } // 测试订阅 console.log("📥 测试订阅功能..."); websocketService.subscribeToProcessInfo(testServerId); // 等待订阅确认 await new Promise((resolve) => setTimeout(resolve, 3000)); if (connectionLost) { console.error("❌ 订阅过程中连接丢失"); return false; } console.log("✅ 测试完成 - 连接保持稳定"); return true; } catch (error) { console.error("❌ 测试过程中发生错误:", error); return false; } } // 持续监控连接状态 function startConnectionMonitoring() { console.log("🔍 开始连接状态监控..."); const checkInterval = setInterval(() => { const connected = websocketService.isConnected(); const info = websocketService.getConnectionInfo(); console.log(`🔍 连接状态检查: ${connected ? "✅ 已连接" : "❌ 未连接"}`, { 重连次数: info.reconnectAttempts, 正在连接: info.isConnecting, }); if (!connected && !info.isConnecting) { console.warn("⚠️ 检测到连接丢失,尝试重新连接..."); websocketService.connect().catch((err: any) => { console.error("❌ 重连失败:", err); }); } }, 5000); // 返回停止函数 return () => { clearInterval(checkInterval); console.log("🛑 连接监控已停止"); }; } // 导出到全局作用域 (window as any).wsTest = { test: testWebSocketConnection, monitor: startConnectionMonitoring, connect: () => websocketService.connect(), disconnect: () => websocketService.disconnect(), status: () => websocketService.getConnectionInfo(), subscribe: (serverId: string) => websocketService.subscribeToProcessInfo(serverId), }; console.log("🛠️ WebSocket测试工具已加载"); console.log("📋 可用命令:"); console.log("- wsTest.test() - 运行连接测试"); console.log("- wsTest.monitor() - 开始连接监控"); console.log("- wsTest.connect() - 手动连接"); console.log("- wsTest.disconnect() - 手动断开"); console.log("- wsTest.status() - 查看连接状态"); console.log("- wsTest.subscribe(serverId) - 订阅服务器指标");

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zaizaizhao/mcp-swagger-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server