Vroom客户端JS
与平台无关的核心SDK,用于构建实时通信体验。
功能
- 简单的API -初始化一次,连接到房间与一个单一的呼叫
- 自动令牌交换 -SDK自动处理身份验证
- 类型安全的 -完整的TypeScript支持
- 生产准备 -自动重新连接和错误处理内置
安装
npm install @vroom/client-js
React Native
WebRTC全局变量在内部自动初始化 Vroom.connect() -无需手动填充设置。
对于RN特定的助手 (例如, RTCView 要渲染远程视频,请使用专用子路径:
import { RTCView, MediaStream } from '@vroom/client-js/react-native'
所需的对等依赖关系
npm install @livekit/react-native @livekit/react-native-webrtc
然后在iOS上运行 pod install.
快速入门
import { Vroom, SessionEvent } from '@vroom/client-js'
// 1. Initialize (once at app startup)
await Vroom.init({ apiKey: 'your-api-key' })
// 2. Connect to room
const session = await Vroom.connect({
roomName: 'meeting-123',
user: { id: 'user-1', displayName: 'Alice', role: 'host' },
type: 'group',
media: { audio: true, video: true },
eventHandlers: {
[SessionEvent.ParticipantJoined]: ({ participant }) => {
console.log(`${participant.displayName} joined`)
},
[SessionEvent.TrackAdded]: ({ track }) => {
if (track.mediaStreamTrack) {
videoElement.srcObject = new MediaStream([track.mediaStreamTrack])
}
}
}
})
// 3. Control media
session.disableMic()
session.enableCamera()
// 4. Disconnect
await session.disconnect()
API参考
发呜呜声
| 方法 | 描述 |
|---|---|
init(config) | 使用API密钥初始化SDK |
connect(params) | 连接到房间 |
reset() | 重置SDK状态 |
会话
| 方法 | 描述 |
|---|---|
enableMic() / disableMic() | 切换麦克风 |
enableCamera() / disableCamera() | 切换摄像头 |
switchDevice(options) | 切换音频/视频输入或输出设备 |
getActiveDevice(kind) | 获取当前活动的设备ID |
getParticipants() | 获取所有参与者 |
room | 房间信息(name, sid, createdAt)-连接不可变 |
disconnect() | 从房间断开 |
on(event, handler) | 添加事件侦听器 |
事件
| 事件 | 描述 |
|---|---|
SessionEvent.Connected | 连接到房间 |
SessionEvent.Disconnected | 从房间断开 |
SessionEvent.ParticipantJoined | 参与者加入 |
SessionEvent.ParticipantLeft | 参与者离开 |
SessionEvent.TrackAdded | 已发布曲目 |
SessionEvent.TrackRemoved | 跟踪未发表的 |
SessionEvent.Error | 发生错误 |
错误处理
try {
await Vroom.connect({ ... })
} catch (error) {
if (error.code === 'E_INVALID_API_KEY') {
// Handle invalid API key
}
}
贡献
看到 CONTRIBUTING.md.
许可证
麻省理工学院