{"_id":"@cg-devcenter/rtc-fpnn-webjs-sdk","name":"@cg-devcenter/rtc-fpnn-webjs-sdk","dist-tags":{"latest":"1.0.0-cg.2"},"versions":{"1.0.0-cg.2":{"name":"@cg-devcenter/rtc-fpnn-webjs-sdk","version":"1.0.0-cg.2","description":"Browser RTM SDK with FPNN and TLV v1 MessagePack WebSocket transports","main":"./dist/rtm.min.js","browser":"./dist/rtm.min.js","types":"./dist/rtm.d.ts","unpkg":"./dist/rtm.min.js","jsdelivr":"./dist/rtm.min.js","repository":{"type":"git","url":"git+ssh://git@gitlab.diandian.info/rtc/rtc-client-sdk-websocket.git"},"homepage":"https://gitlab.diandian.info/rtc/rtc-client-sdk-websocket","exports":{".":{"types":"./dist/rtm.d.ts","require":"./dist/rtm.min.js","default":"./dist/rtm.min.js"},"./dist/*":"./dist/*","./package.json":"./package.json"},"author":{"name":"Dixun"},"license":"MIT","scripts":{"build":"webpack --mode production","test":"npm run test:unit && npm run test:package","test:unit":"node test/tlv/run.js && node test/tlv/documentation.js","test:package":"npm run build && node test/package-smoke.js","prepack":"npm run build"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-2":"^6.24.1","buffer":"^5.1.0","int64-buffer":"^0.1.10","webpack":"^4.1.1","webpack-cli":"^3.3.12"},"_id":"@cg-devcenter/rtc-fpnn-webjs-sdk@1.0.0-cg.2","gitHead":"8aeaab1baf137dfb6e91ba286fb30a9fc74678c8","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-uvK4ALn2f1sCO/AkLNjBXzzO+xmO2NsTYFYStE0r7hcmFvxoQnTy39/wftudVOSZq9dwKYSaah7gmFALqKX0aQ==","shasum":"8652ee1424ac5d6312392ccc7dbf95ff3ccb2406","tarball":"https://registry.npmjs.org/@cg-devcenter/rtc-fpnn-webjs-sdk/-/rtc-fpnn-webjs-sdk-1.0.0-cg.2.tgz","fileCount":7,"unpackedSize":269245,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDUNnvrpRkL4w7sc0g7VFvJbR/eja+TDn65koDVri4AqAIhAIATXUZfWDx7cqsxx0CJnJ4bd5YbYuRHpRQGvKVIxu5t"}]},"_npmUser":{"name":"yanbo.liu1","email":"yanbo.liu1@ddhd.cn"},"directories":{},"maintainers":[{"name":"hui.wang.cg","email":"hui.wang@centurygame.com"},{"name":"daming.yang.cg","email":"daming.yang@centurygame.com"},{"name":"yanbo.liu1","email":"yanbo.liu1@ddhd.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rtc-fpnn-webjs-sdk_1.0.0-cg.2_1787894196464_0.957656042777203"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T05:16:36.274Z","1.0.0-cg.2":"2026-08-28T05:16:36.612Z","modified":"2026-08-28T05:16:36.847Z"},"maintainers":[{"name":"hui.wang.cg","email":"hui.wang@centurygame.com"},{"name":"daming.yang.cg","email":"daming.yang@centurygame.com"},{"name":"yanbo.liu1","email":"yanbo.liu1@ddhd.cn"}],"description":"Browser RTM SDK with FPNN and TLV v1 MessagePack WebSocket transports","homepage":"https://gitlab.diandian.info/rtc/rtc-client-sdk-websocket","repository":{"type":"git","url":"git+ssh://git@gitlab.diandian.info/rtc/rtc-client-sdk-websocket.git"},"author":{"name":"Dixun"},"license":"MIT","readme":"# @cg-devcenter/rtc-fpnn-webjs-sdk\n\nRTC WebSocket Client SDK。新接入使用 `tlv-v1`；`fpnn` 仅保留浏览器兼容能力。\n\n## 模块导出\n\n- `RTMClient`\n- `RTMConfig`\n- `RTMProcessor`\n- `TLVCodec`\n- `TLVWebSocketClient`\n\n## 客户端构造\n\n`new rtm.RTMClient(options)`\n\n| 参数 | 类型 | TLV v1 规则 |\n| --- | --- | --- |\n| `pid` | `number` | 必填。 |\n| `protocol` | `'tlv-v1' \\| 'fpnn'` | 新接入为 `'tlv-v1'`。 |\n| `tlvEndpoint` | `string` | 必填完整 WebSocket URL。 |\n| `autoReconnect` | `boolean` | 缺省为 `true`。 |\n| `connectionTimeout` | `number` | 毫秒。 |\n| `requestMetadata` | `() => Record<string, unknown>` | 可返回 `trace`、`sent_ms`。 |\n| `webSocketFactory` | `(url) => RTMWebSocket` | 无全局 `WebSocket` 时必填。 |\n| `locale` | `string` | 映射为 `auth.login.locale`。 |\n| `clientVersion` | `string` | 映射为 `auth.login.client_ver`。 |\n\n`fpnn` 仅支持浏览器。TLV credential 由业务服务端签发，项目密钥不属于客户端参数。\n\n## 生命周期 API\n\n| API | 回调/结果 |\n| --- | --- |\n| `login(uid, credential, callback, timeout)` | `callback(accepted, errorCode)` |\n| `bye()` | 发送 `connection.close`。 |\n| `close()` | 主动关闭。 |\n| `startAutoReconnect()` | 关闭当前连接后重新登录。 |\n| `destroy()` | 释放客户端资源。 |\n| `getServerTime(timeout, callback)` | `callback(err, data)` |\n\n`uid`、消息 ID、群 ID、房间 ID 和时间游标超出安全整数范围时使用 `RTMConfig.Int64`。\n\n## Push API\n\n通过 `client.processor.on(name, callback)` 注册：\n\n- `RTMConfig.TLV_SERVER_PUSH.recvMessage`：`event.direct`\n- `RTMConfig.TLV_SERVER_PUSH.recvGroupMessage`：`event.group`\n- `RTMConfig.TLV_SERVER_PUSH.recvRoomMessage`：`event.room`\n- `RTMConfig.TLV_SERVER_PUSH.recvBroadcastMessage`：`event.broadcast`\n- `RTMConfig.TLV_SERVER_PUSH.kickOut`：`event.kicked`\n- `RTMConfig.TLV_SERVER_PUSH.kickOutRoom`：`event.room_removed`\n\n可靠消息 Push 由 SDK 自动 ACK 并按 `message_ref` 去重。\n\n## API 文档\n\n- [公开方法与参数](docs/USAGE.md)\n- [TLV v1 wire 契约](docs/TLV_CONTRACT.md)\n- [TLV v1 传输规则](docs/TLV.md)\n","readmeFilename":"README.md","_rev":"1-7e8298a2aec47bdb4c64bf382dd99421"}