@cg-devcenter/rtc-fpnn-webjs-sdk
v1.0.0-cg.2
Published
Browser RTM SDK with FPNN and TLV v1 MessagePack WebSocket transports
Keywords
Readme
@cg-devcenter/rtc-fpnn-webjs-sdk
RTC WebSocket Client SDK。新接入使用 tlv-v1;fpnn 仅保留浏览器兼容能力。
模块导出
RTMClientRTMConfigRTMProcessorTLVCodecTLVWebSocketClient
客户端构造
new rtm.RTMClient(options)
| 参数 | 类型 | TLV v1 规则 |
| --- | --- | --- |
| pid | number | 必填。 |
| protocol | 'tlv-v1' \| 'fpnn' | 新接入为 'tlv-v1'。 |
| tlvEndpoint | string | 必填完整 WebSocket URL。 |
| autoReconnect | boolean | 缺省为 true。 |
| connectionTimeout | number | 毫秒。 |
| requestMetadata | () => Record<string, unknown> | 可返回 trace、sent_ms。 |
| webSocketFactory | (url) => RTMWebSocket | 无全局 WebSocket 时必填。 |
| locale | string | 映射为 auth.login.locale。 |
| clientVersion | string | 映射为 auth.login.client_ver。 |
fpnn 仅支持浏览器。TLV credential 由业务服务端签发,项目密钥不属于客户端参数。
生命周期 API
| API | 回调/结果 |
| --- | --- |
| login(uid, credential, callback, timeout) | callback(accepted, errorCode) |
| bye() | 发送 connection.close。 |
| close() | 主动关闭。 |
| startAutoReconnect() | 关闭当前连接后重新登录。 |
| destroy() | 释放客户端资源。 |
| getServerTime(timeout, callback) | callback(err, data) |
uid、消息 ID、群 ID、房间 ID 和时间游标超出安全整数范围时使用 RTMConfig.Int64。
Push API
通过 client.processor.on(name, callback) 注册:
RTMConfig.TLV_SERVER_PUSH.recvMessage:event.directRTMConfig.TLV_SERVER_PUSH.recvGroupMessage:event.groupRTMConfig.TLV_SERVER_PUSH.recvRoomMessage:event.roomRTMConfig.TLV_SERVER_PUSH.recvBroadcastMessage:event.broadcastRTMConfig.TLV_SERVER_PUSH.kickOut:event.kickedRTMConfig.TLV_SERVER_PUSH.kickOutRoom:event.room_removed
可靠消息 Push 由 SDK 自动 ACK 并按 message_ref 去重。
