{"_id":"@alipay-inc/mpaas-mgs-sdk-websocket","_rev":"5-a8c86fa755c29bf7efdef5683b76c584","name":"@alipay-inc/mpaas-mgs-sdk-websocket","dist-tags":{"latest":"1.0.0-beta.5"},"versions":{"1.0.0-beta.1":{"name":"@alipay-inc/mpaas-mgs-sdk-websocket","version":"1.0.0-beta.1","keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"author":{"name":"mPaaS Team"},"license":"MIT","_id":"@alipay-inc/mpaas-mgs-sdk-websocket@1.0.0-beta.1","maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"dist":{"shasum":"d8d4087c403978928095935c370529374448e11a","tarball":"https://registry.npmjs.org/@alipay-inc/mpaas-mgs-sdk-websocket/-/mpaas-mgs-sdk-websocket-1.0.0-beta.1.tgz","fileCount":5,"integrity":"sha512-BvdmnHaBWbZwDdU3MvwdP6yoze69GJHuHQ95JApRB0vizFWw44bagQgCGsSP+bfbc8iYGlOSvhs5w0+4g5Ggxw==","signatures":[{"sig":"MEQCIAZAG3j/+WHAnTCwaawvd7m9HM/FnAqRfqCg22Q3yU6vAiA8gaAZ4nm9Pi35kmVxXC0jSXGEt7rxMUCYwenwd+f9WA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92306},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5486278fd7d2d62fb87a3f4762c1319d9fc38d45","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc && webpack --mode=production","dev:umd":"webpack --mode=development --watch","build:umd":"webpack --mode=production"},"_npmUser":{"name":"ywy1994","email":"983056724@qq.com"},"repository":{"url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git","type":"git"},"_npmVersion":"10.9.2","description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","directories":{},"_nodeVersion":"22.14.0","dependencies":{"crypto-js":"^4.1.1","js-base64":"^3.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","webpack":"^5.101.3","ts-loader":"^9.5.2","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","webpack-cli":"^6.0.1","@types/crypto-js":"^4.2.2","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mpaas-mgs-sdk-websocket_1.0.0-beta.1_1758619955792_0.8589085544168769","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"@alipay-inc/mpaas-mgs-sdk-websocket","version":"1.0.0-beta.2","keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"author":{"name":"mPaaS Team"},"license":"MIT","_id":"@alipay-inc/mpaas-mgs-sdk-websocket@1.0.0-beta.2","maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"dist":{"shasum":"f0c22dfa0c5050e8df3f9253e2076e565e502bad","tarball":"https://registry.npmjs.org/@alipay-inc/mpaas-mgs-sdk-websocket/-/mpaas-mgs-sdk-websocket-1.0.0-beta.2.tgz","fileCount":13,"integrity":"sha512-i148peC581SedfnxQ82kKR+JQpyW3ghI5eNkOoqdPj4n5OLX9DnxlMXi7jj2bZiM24Naq6OEM6wHXPA7T+vxRg==","signatures":[{"sig":"MEUCIF2/bPObINq1gLxzcjHOnMer4YdW7zd58xRxGBXhUKBVAiEA38fGPg+6MompYois1DooA5YD08J4CM55SFhddWEA74w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487191},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5486278fd7d2d62fb87a3f4762c1319d9fc38d45","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"webpack --mode=production","dev:umd":"webpack --mode=development --watch","build:umd":"webpack --mode=production"},"_npmUser":{"name":"ywy1994","email":"983056724@qq.com"},"repository":{"url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git","type":"git"},"_npmVersion":"10.9.2","description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","directories":{},"_nodeVersion":"22.14.0","dependencies":{"crypto-js":"^4.1.1","js-base64":"^3.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","webpack":"^5.101.3","ts-loader":"^9.5.2","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","webpack-cli":"^6.0.1","@types/crypto-js":"^4.2.2","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mpaas-mgs-sdk-websocket_1.0.0-beta.2_1758683496508_0.006541423147758296","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@alipay-inc/mpaas-mgs-sdk-websocket","version":"1.0.0-beta.3","keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"author":{"name":"mPaaS Team"},"license":"MIT","_id":"@alipay-inc/mpaas-mgs-sdk-websocket@1.0.0-beta.3","maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"dist":{"shasum":"8ad31fc0f9a4cbbdb166fd0f71e5069c20725912","tarball":"https://registry.npmjs.org/@alipay-inc/mpaas-mgs-sdk-websocket/-/mpaas-mgs-sdk-websocket-1.0.0-beta.3.tgz","fileCount":13,"integrity":"sha512-sjevIu8XjCJMBHFFYbbxf5RhuqNgwpFDYKCyPbpRXGhrkLJWOpHlI+V9mjT+lgPHDfxsMmEkfDvo7xyuASEG5Q==","signatures":[{"sig":"MEUCIQDIRiBQP4fUZrhVl5BsER5lktE1PX0+Qf1IC/mB88/crAIgcVZ/ouDGRwetRL/y6OQ/ukHv04ciJRiYLAQpg3TU9ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487192},"main":"dist/index.js","types":"dist/types/index.d.ts","gitHead":"5486278fd7d2d62fb87a3f4762c1319d9fc38d45","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","sync":"tnpm sync @alipay-inc/mpaas-mgs-sdk-websocket","test":"jest","build":"webpack --mode=production","dev:umd":"webpack --mode=development --watch","build:umd":"webpack --mode=production"},"_npmUser":{"name":"ywy1994","email":"983056724@qq.com"},"repository":{"url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git","type":"git"},"_npmVersion":"10.9.2","description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","directories":{},"_nodeVersion":"22.14.0","dependencies":{"crypto-js":"^4.1.1","js-base64":"^3.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","webpack":"^5.101.3","ts-loader":"^9.5.2","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","webpack-cli":"^6.0.1","@types/crypto-js":"^4.2.2","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mpaas-mgs-sdk-websocket_1.0.0-beta.3_1758683782055_0.09858698269530386","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"@alipay-inc/mpaas-mgs-sdk-websocket","version":"1.0.0-beta.4","keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"author":{"name":"mPaaS Team"},"license":"MIT","_id":"@alipay-inc/mpaas-mgs-sdk-websocket@1.0.0-beta.4","maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"dist":{"shasum":"b0fcd97164b444fec119249b7c739a6b23b73f13","tarball":"https://registry.npmjs.org/@alipay-inc/mpaas-mgs-sdk-websocket/-/mpaas-mgs-sdk-websocket-1.0.0-beta.4.tgz","fileCount":13,"integrity":"sha512-kK8/CbiMBTkcthI+WgDTzXmAL8fWZ179hhJfGLU3VmQXT/IJ6T+IW7WGWESJNK83TQ/ZpdHhaBib4uyO510FHg==","signatures":[{"sig":"MEUCIQDM9PbLGYXYi5jHC3IqrWbZX1/ZPuy97jiS3e8/b2CxcQIgM/suThUcIaxKTUgZElPaqOE+Ko7v3rvtRrQZjgvehmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488328},"main":"dist/index.js","types":"dist/types/index.d.ts","gitHead":"5486278fd7d2d62fb87a3f4762c1319d9fc38d45","scripts":{"dev":"tsc --watch","tsc":"tsc","lint":"eslint src --ext .ts","sync":"tnpm sync @alipay-inc/mpaas-mgs-sdk-websocket","test":"jest","build":"webpack --mode=production","dev:umd":"webpack --mode=development --watch","build:umd":"webpack --mode=production"},"_npmUser":{"name":"ywy1994","email":"983056724@qq.com"},"repository":{"url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git","type":"git"},"_npmVersion":"10.9.2","description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","directories":{},"_nodeVersion":"22.14.0","dependencies":{"crypto-js":"^4.1.1","js-base64":"^3.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","webpack":"^5.101.3","ts-loader":"^9.5.2","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","webpack-cli":"^6.0.1","@types/crypto-js":"^4.2.2","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mpaas-mgs-sdk-websocket_1.0.0-beta.4_1758696000361_0.49455092962426694","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"@alipay-inc/mpaas-mgs-sdk-websocket","version":"1.0.0-beta.5","description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","main":"dist/index.js","types":"dist/types/index.d.ts","scripts":{"build":"webpack --mode=production","build:umd":"webpack --mode=production","tsc":"tsc","dev":"tsc --watch","dev:umd":"webpack --mode=development --watch","test":"jest","lint":"eslint src --ext .ts","sync":"tnpm sync @alipay-inc/mpaas-mgs-sdk-websocket"},"keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"author":{"name":"mPaaS Team"},"license":"MIT","devDependencies":{"@types/crypto-js":"^4.2.2","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","ts-loader":"^9.5.2","typescript":"^5.0.0","webpack":"^5.101.3","webpack-cli":"^6.0.1"},"dependencies":{"crypto-js":"^4.1.1","js-base64":"^3.7.2"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git"},"bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","_id":"@alipay-inc/mpaas-mgs-sdk-websocket@1.0.0-beta.5","gitHead":"5486278fd7d2d62fb87a3f4762c1319d9fc38d45","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-X7elhw6f02kdz5dwIV0YvHi3rUCmosqtlK/VN52Xtj2j9nPb3ZW0stmOOFHEb4k6lICs8lukB5Wq2imWWRRHrQ==","shasum":"76d856b36be1be352fd00ee9acbd811d38f5981e","tarball":"https://registry.npmjs.org/@alipay-inc/mpaas-mgs-sdk-websocket/-/mpaas-mgs-sdk-websocket-1.0.0-beta.5.tgz","fileCount":13,"unpackedSize":487570,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEiIS2iwEOz5/CokqXOw/iFVgjKRQ4uFe5O+ei1wQMa6AiEAhzvh2/1r740ErY21cf9JDPj/mH+uoqeTBx5jtx7zLK0="}]},"_npmUser":{"name":"ywy1994","email":"983056724@qq.com"},"directories":{},"maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mpaas-mgs-sdk-websocket_1.0.0-beta.5_1758697763532_0.29315600966118804"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-23T09:32:35.714Z","modified":"2025-09-24T07:09:24.006Z","1.0.0-beta.1":"2025-09-23T09:32:36.002Z","1.0.0-beta.2":"2025-09-24T03:11:36.704Z","1.0.0-beta.3":"2025-09-24T03:16:22.303Z","1.0.0-beta.4":"2025-09-24T06:40:00.543Z","1.0.0-beta.5":"2025-09-24T07:09:23.729Z"},"bugs":{"url":"https://github.com/mpaas/mpaas-mgs-sdk-websocket/issues"},"author":{"name":"mPaaS Team"},"license":"MIT","homepage":"https://github.com/mpaas/mpaas-mgs-sdk-websocket#readme","keywords":["websocket","sdk","mpaas","mgs","real-time","connection"],"repository":{"type":"git","url":"git+https://github.com/mpaas/mpaas-mgs-sdk-websocket.git"},"description":"A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling","maintainers":[{"name":"stormyray","email":"raymond90523@gmail.com"},{"name":"zkiie","email":"byzhkc3@gmail.com"},{"name":"shengyong.zhu","email":"7040423@qq.com"},{"name":"liwe.lw","email":"530162466@qq.com"},{"name":"weijupeng","email":"weijupeng.wjp@digital-engine.com"},{"name":"ywy1994","email":"983056724@qq.com"},{"name":"geminiwen","email":"coffeesherk@gmail.com"}],"readme":"# mPaaS MGS WebSocket SDK\n\n一个功能完整的 WebSocket 客户端 SDK，专为 mPaaS MGS 平台设计，提供连接管理、自动重连、心跳检测、消息队列等企业级功能。\n\n## 项目特性\n\n- 🔌 **自动连接管理** - 智能连接状态管理和错误处理\n- 🔄 **自动重连机制** - 可配置的重连策略，确保连接稳定性\n- 💓 **心跳检测** - 定时心跳保持连接活跃\n- 📦 **消息队列** - 连接断开时自动缓存消息，连接恢复后重发\n- 📊 **连接统计** - 详细的连接和消息统计信息\n- 🎯 **事件驱动** - 完整的事件系统，支持各种连接状态监听\n- 🛠️ **TypeScript 支持** - 完整的类型定义，提供优秀的开发体验\n- 📝 **日志系统** - 可配置的日志级别，便于调试和监控\n\n## 兼容环境\n\n- **浏览器**: 支持现代浏览器（Chrome 58+, Firefox 55+, Safari 11+, Edge 79+）\n- **Node.js**: 支持 Node.js 14+ 环境（需要 WebSocket polyfill）\n- **TypeScript**: 支持 TypeScript 4.0+\n\n## 安装方法\n\n```bash\nnpm install mpaas-mgs-sdk-websocket\n```\n\n或使用 yarn:\n\n```bash\nyarn add mpaas-mgs-sdk-websocket\n```\n\n## 快速开始\n\n### 基本使用\n\n```typescript\nimport { WebSocketClient, WebSocketEventType } from 'mpaas-mgs-sdk-websocket';\n\n// 创建客户端实例\nconst client = new WebSocketClient({\n  url: 'wss://your-websocket-server.com',\n  autoReconnect: true,\n  heartbeatInterval: 30000\n});\n\n// 监听连接事件\nclient.on(WebSocketEventType.OPEN, () => {\n  console.log('连接已建立');\n});\n\n// 监听消息事件\nclient.on(WebSocketEventType.MESSAGE, (event) => {\n  console.log('收到消息:', event.data);\n});\n\n// 连接服务器\nawait client.connect();\n\n// 发送消息\nawait client.send('Hello WebSocket!');\n```\n\n### 高级配置\n\n```typescript\nimport { WebSocketClient, LogLevel, Logger } from 'mpaas-mgs-sdk-websocket';\n\n// 设置日志级别\nLogger.getInstance().setLevel(LogLevel.DEBUG);\n\n// 创建高级配置的客户端\nconst client = new WebSocketClient({\n  url: 'wss://your-websocket-server.com',\n  protocols: ['chat', 'notification'],\n  timeout: 10000,\n  autoReconnect: true,\n  reconnectInterval: 5000,\n  maxReconnectAttempts: 10,\n  heartbeatInterval: 30000,\n  heartbeatMessage: JSON.stringify({ type: 'ping' }),\n  headers: {\n    'Authorization': 'Bearer your-token',\n    'X-Client-Version': '1.0.0'\n  }\n});\n```\n\n## API 文档\n\n### WebSocketClient\n\n主要的 WebSocket 客户端类。\n\n#### 构造函数\n\n```typescript\nnew WebSocketClient(config: WebSocketConfig)\n```\n\n#### 配置选项 (WebSocketConfig)\n\n| 参数 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `url` | `string` | - | WebSocket 服务器 URL（必填） |\n| `protocols` | `string \\| string[]` | `[]` | 连接协议 |\n| `timeout` | `number` | `10000` | 连接超时时间（毫秒） |\n| `autoReconnect` | `boolean` | `true` | 是否自动重连 |\n| `reconnectInterval` | `number` | `3000` | 重连间隔时间（毫秒） |\n| `maxReconnectAttempts` | `number` | `5` | 最大重连次数 |\n| `heartbeatInterval` | `number` | `30000` | 心跳间隔时间（毫秒） |\n| `heartbeatMessage` | `string` | `'ping'` | 心跳消息内容 |\n| `headers` | `Record<string, string>` | `{}` | 自定义请求头 |\n\n#### 主要方法\n\n##### connect(): Promise<void>\n连接到 WebSocket 服务器。\n\n```typescript\ntry {\n  await client.connect();\n  console.log('连接成功');\n} catch (error) {\n  console.error('连接失败:', error);\n}\n```\n\n##### disconnect(code?: number, reason?: string): void\n断开 WebSocket 连接。\n\n```typescript\nclient.disconnect(1000, '正常关闭');\n```\n\n##### send(data: string | ArrayBuffer | Blob, options?: SendOptions): Promise<void>\n发送消息到服务器。\n\n```typescript\n// 发送文本消息\nawait client.send('Hello World!');\n\n// 发送 JSON 消息\nawait client.send(JSON.stringify({ type: 'message', content: 'Hello' }));\n\n// 带选项发送\nawait client.send('message', {\n  waitForConnection: true,\n  timeout: 5000\n});\n```\n\n##### isConnected(): boolean\n检查是否已连接。\n\n```typescript\nif (client.isConnected()) {\n  await client.send('message');\n}\n```\n\n##### getState(): WebSocketState\n获取当前连接状态。\n\n```typescript\nimport { WebSocketState } from 'mpaas-mgs-sdk-websocket';\n\nconst state = client.getState();\nconsole.log('当前状态:', state === WebSocketState.OPEN ? '已连接' : '未连接');\n```\n\n##### getStats(): WebSocketStats\n获取连接统计信息。\n\n```typescript\nconst stats = client.getStats();\nconsole.log('统计信息:', {\n  state: stats.state,\n  connectedAt: stats.connectedAt,\n  sentMessages: stats.sentMessageCount,\n  receivedMessages: stats.receivedMessageCount,\n  reconnectCount: stats.reconnectCount\n});\n```\n\n##### updateConfig(config: Partial<WebSocketConfig>): void\n动态更新配置。\n\n```typescript\nclient.updateConfig({\n  heartbeatInterval: 15000,\n  maxReconnectAttempts: 10\n});\n```\n\n##### destroy(): void\n销毁客户端实例，清理所有资源。\n\n```typescript\nclient.destroy();\n```\n\n### 事件系统\n\nSDK 基于事件驱动架构，支持以下事件：\n\n#### WebSocketEventType\n\n| 事件 | 说明 | 事件数据 |\n|------|------|----------|\n| `OPEN` | 连接建立 | `Event` |\n| `MESSAGE` | 收到消息 | `MessageEvent` |\n| `ERROR` | 连接错误 | `Event` |\n| `CLOSE` | 连接关闭 | `CloseEvent` |\n| `RECONNECTING` | 正在重连 | `{ attempt: number }` |\n| `RECONNECTED` | 重连成功 | `Event` |\n| `RECONNECT_FAILED` | 重连失败 | `{ maxAttempts: number }` |\n\n#### 事件监听示例\n\n```typescript\nimport { WebSocketEventType } from 'mpaas-mgs-sdk-websocket';\n\n// 监听连接事件\nclient.on(WebSocketEventType.OPEN, (event) => {\n  console.log('WebSocket 连接已建立');\n});\n\n// 监听消息事件\nclient.on(WebSocketEventType.MESSAGE, (event) => {\n  console.log('收到消息:', event.data);\n});\n\n// 监听重连事件\nclient.on(WebSocketEventType.RECONNECTING, (data) => {\n  console.log(`正在进行第 ${data.attempt} 次重连...`);\n});\n\n// 一次性监听器\nclient.once(WebSocketEventType.OPEN, () => {\n  console.log('首次连接成功');\n});\n\n// 移除监听器\nconst messageHandler = (event) => console.log(event.data);\nclient.on(WebSocketEventType.MESSAGE, messageHandler);\nclient.off(WebSocketEventType.MESSAGE, messageHandler);\n```\n\n### 日志系统\n\nSDK 内置了完整的日志系统：\n\n```typescript\nimport { Logger, LogLevel } from 'mpaas-mgs-sdk-websocket';\n\nconst logger = Logger.getInstance();\n\n// 设置日志级别\nlogger.setLevel(LogLevel.DEBUG); // DEBUG, INFO, WARN, ERROR, NONE\n\n// 设置日志前缀\nlogger.setPrefix('[MyApp]');\n\n// 日志输出\nlogger.debug('调试信息');\nlogger.info('一般信息');\nlogger.warn('警告信息');\nlogger.error('错误信息');\n```\n\n## 使用示例\n\n### 聊天应用示例\n\n```typescript\nimport { WebSocketClient, WebSocketEventType } from 'mpaas-mgs-sdk-websocket';\n\ninterface ChatMessage {\n  type: 'message' | 'join' | 'leave';\n  user: string;\n  content: string;\n  timestamp: number;\n}\n\nconst chatClient = new WebSocketClient({\n  url: 'wss://chat.example.com',\n  autoReconnect: true,\n  heartbeatInterval: 30000\n});\n\n// 发送聊天消息\nasync function sendChatMessage(user: string, content: string) {\n  const message: ChatMessage = {\n    type: 'message',\n    user,\n    content,\n    timestamp: Date.now()\n  };\n  \n  await chatClient.send(JSON.stringify(message));\n}\n\n// 处理接收的消息\nchatClient.on(WebSocketEventType.MESSAGE, (event) => {\n  try {\n    const message: ChatMessage = JSON.parse(event.data);\n    console.log(`[${message.user}]: ${message.content}`);\n  } catch (error) {\n    console.error('消息解析失败:', error);\n  }\n});\n\n// 连接并加入聊天\nawait chatClient.connect();\nawait sendChatMessage('Alice', 'Hello everyone!');\n```\n\n### 实时数据监控示例\n\n```typescript\nimport { WebSocketClient, WebSocketEventType } from 'mpaas-mgs-sdk-websocket';\n\nconst monitorClient = new WebSocketClient({\n  url: 'wss://monitor.example.com',\n  autoReconnect: true,\n  reconnectInterval: 2000,\n  maxReconnectAttempts: -1, // 无限重连\n  heartbeatInterval: 10000\n});\n\n// 订阅数据流\nasync function subscribe(channels: string[]) {\n  const subscribeMessage = {\n    action: 'subscribe',\n    channels\n  };\n  \n  await monitorClient.send(JSON.stringify(subscribeMessage));\n}\n\n// 处理实时数据\nmonitorClient.on(WebSocketEventType.MESSAGE, (event) => {\n  const data = JSON.parse(event.data);\n  \n  switch (data.type) {\n    case 'metrics':\n      updateMetricsDashboard(data.payload);\n      break;\n    case 'alert':\n      showAlert(data.payload);\n      break;\n    case 'heartbeat':\n      console.log('服务器心跳正常');\n      break;\n  }\n});\n\n// 连接并订阅\nawait monitorClient.connect();\nawait subscribe(['cpu', 'memory', 'network']);\n```\n\n## 错误处理\n\nSDK 提供了完善的错误处理机制：\n\n```typescript\n// 连接错误处理\nclient.on(WebSocketEventType.ERROR, (event) => {\n  console.error('WebSocket 错误:', event);\n});\n\n// 连接关闭处理\nclient.on(WebSocketEventType.CLOSE, (event) => {\n  console.log('连接关闭:', {\n    code: event.code,\n    reason: event.reason,\n    wasClean: event.wasClean\n  });\n});\n\n// 重连失败处理\nclient.on(WebSocketEventType.RECONNECT_FAILED, (data) => {\n  console.error(`重连失败，已尝试 ${data.maxAttempts} 次`);\n  // 可以在这里实现自定义的错误恢复逻辑\n});\n\n// 发送消息错误处理\ntry {\n  await client.send('message');\n} catch (error) {\n  console.error('发送消息失败:', error);\n}\n```\n\n## 最佳实践\n\n### 1. 连接管理\n\n```typescript\n// 推荐：使用 try-catch 处理连接\ntry {\n  await client.connect();\n} catch (error) {\n  console.error('初始连接失败，将依赖自动重连机制');\n}\n\n// 推荐：在应用退出时优雅关闭\nwindow.addEventListener('beforeunload', () => {\n  client.disconnect(1000, '页面关闭');\n});\n```\n\n### 2. 消息处理\n\n```typescript\n// 推荐：使用消息队列确保消息不丢失\nawait client.send('important message', {\n  waitForConnection: true,\n  timeout: 10000\n});\n\n// 推荐：结构化消息格式\ninterface AppMessage {\n  id: string;\n  type: string;\n  payload: any;\n  timestamp: number;\n}\n\nasync function sendAppMessage(type: string, payload: any) {\n  const message: AppMessage = {\n    id: generateId(),\n    type,\n    payload,\n    timestamp: Date.now()\n  };\n  \n  await client.send(JSON.stringify(message));\n}\n```\n\n### 3. 错误处理和监控\n\n```typescript\n// 推荐：实现完整的事件监听\nclient.on(WebSocketEventType.OPEN, () => {\n  console.log('✅ 连接成功');\n  // 发送认证消息、订阅数据等\n});\n\nclient.on(WebSocketEventType.RECONNECTING, (data) => {\n  console.log(`🔄 重连中... (${data.attempt}/${maxAttempts})`);\n  // 显示重连状态给用户\n});\n\nclient.on(WebSocketEventType.RECONNECTED, () => {\n  console.log('✅ 重连成功');\n  // 重新订阅数据、同步状态等\n});\n```\n\n## 开发和构建\n\n### 环境要求\n\n- Node.js 14+\n- TypeScript 4.0+\n\n### 安装依赖\n\n```bash\nnpm install\n```\n\n### 开发模式\n\n```bash\nnpm run dev\n```\n\n### 构建项目\n\n```bash\nnpm run build\n```\n\n### 运行测试\n\n```bash\nnpm test\n```\n\n### 代码检查\n\n```bash\nnpm run lint\n```\n\n## 主要项目负责人\n\n- @mPaaS Team\n\n## 参与贡献\n\n欢迎提交 Issue 和 Pull Request 来改进这个项目。\n\n1. Fork 本仓库\n2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交你的修改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 开启一个 Pull Request\n\n## 许可证\n\n本项目采用 MIT 许可证。详情请参阅 [LEGAL.md](LEGAL.md) 文件。\n\n## 更新日志\n\n### v1.0.0\n- 🎉 首次发布\n- ✨ 完整的 WebSocket 连接管理\n- 🔄 自动重连机制\n- 💓 心跳检测功能\n- 📦 消息队列支持\n- 📊 连接统计功能\n- 🎯 事件驱动架构\n- 🛠️ TypeScript 支持\n- 📝 完整的日志系统","readmeFilename":"README.md"}