# dingrtc

> dingRTC web端 sdk

Latest version **3.9.37** (published 2026-09-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install dingrtc
pnpm add dingrtc
yarn add dingrtc
bun add dingrtc
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 3.9.37 |
| Published | 2026-09-02 |
| First published | 2025-06-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 1.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | leopano |
| Keywords | web, library |

## Links

- npm: https://www.npmjs.com/package/dingrtc
- npm.io page: https://npm.io/package/dingrtc

## Dependencies (4)

- [sdp-transform](https://npm.io/package/sdp-transform.md) ^2.14.2
- [webrtc-adapter](https://npm.io/package/webrtc-adapter.md) ^8.2.3
- [@dingrtc/shared](https://npm.io/package/@dingrtc/shared.md) 1.1.10
- [@dingrtc/channel](https://npm.io/package/@dingrtc/channel.md) 1.1.18

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 3.9.37 (latest) — 2026-09-02
- 3.9.36 — 2026-06-29
- 3.9.35 — 2026-06-16
- 3.9.34 — 2026-05-29
- 3.9.33 — 2026-05-20
- 3.9.32 — 2026-04-24
- 3.9.31 — 2026-03-31
- 3.9.30 — 2026-03-02
- 3.9.12-fix.1 — 2026-03-01
- 3.9.28 — 2026-01-22
- 3.9.27 — 2026-01-12
- 3.9.26 — 2026-01-08
- 3.6.1-108.1 — 2026-01-08
- 3.9.25 — 2026-01-08
- 3.9.24 — 2026-01-07
- … 72 more at https://npm.io/package/dingrtc/versions

## README

# Aliyun WebRtc SDK


阿里云音视频通信dingRtc，提供基于WebRTC适用于浏览器的SDK。


## Installation


You can install it as dependency with npm/cnpm or yarn.


```javascript
$ # save into package.json dependencies with -S
$ npm install dingrtc -S

$ # you can use cnpm for fast install
$ cnpm install dingrtc -S

$ # use yarn for install
$ yarn add dingrtc
```


## 一、接入前准备
阿里云RTC提供移动端、PC等多端SDK，并兼容标准WebRTC浏览器接入网络，帮助您快速搭建多端实时应用。接入RTC的方法，请参见[接口文档](https://help.aliyun.com/document_detail/2640098.html)。
当您成功搭建本地SDK，可以在终端调用API与RTC服务端进行交互，在加入频道或房间后，您可以进行本地推流、订阅远端用户等操作，实现频道内不同用户之间的音视频实时通话。
阿里云RTC拥有全球实时智能调度系统，并结合实时媒体处理系统和1500+边缘节点，运用行业领先的音频3A（AGC、AEC、ANS）、视频编码、弱网对抗等算法为您提供低延时、抗丢包的音视频实时通信。
![](https://intranetproxy.alipay.com/skylark/lark/0/2020/png/241429/1583478028152-476aa35b-4353-4055-955a-199523e4c658.png#align=left&display=inline&height=1726&margin=%5Bobject%20Object%5D&originHeight=1726&originWidth=1346&size=0&status=done&style=none&width=1346)

## 二、快速开启

- 创建实例

```javascript
import DingRTC from 'dingrtc'

/**
 * 创建客户端实例
 */
const client = DingRTC.createClient();
```

- 检测浏览器是否支持webrtc

```javascript
const supported = DingRTC.checkSystemRequirements();
if (supported) {
  //支持webrtc
} else {
 //不支持webrtc
}
```

- 订阅user-published回调。当远程用户推流时，在SDK里会触发user-published回调，通过订阅这个回调，能够得到频道里已经推流的用户。

```javascript
client.on('user-published',(user, mediaType) =>{
    //远程发布者userId
    console.log(user.userId);
    //远程发布轨道类型
    console.log(mediaType);
  });
```

- 加入频道

```javascript
client.join({
    uid,         // 用户ID，只能由数字、字母、下划线组成
    channel,        // 频道名
    appId,          // 应用ID
    token,          // 令牌
    userName,       // 用户名 
}).then((response)=>{
    // 入会成功
    console.log(response.remoteUsers); // 打印已在会中成员
}).catch((error)=>{
    // 入会失败，打印错误内容，可以看到失败原因
    console.log(error.message);
});
```


- 采集摄像头

```javascript
const cameraTrack = await DingRTC.createCameraVideoTrack({
  frameRate: 15,
  dimension: 'VD_1280x720',
})
```

- 采集麦克风

```javascript
const micTrack = await DingRTC.createMicrophoneAudioTrack()
```

- 推流

```javascript
await client.publish([cameraTrack, micTrack]);
```

- 订阅和显示远程流。通过subscribe方法订阅远程流，订阅成功后在调用track.play显示远程流。

通常在user-published回调中进行订阅与设置视图。


```javascript
// 订阅指定用户视频
client.subscribe(userId, 'video').then((track)=>{
  track.play(`#${userId}`)
}).catch((error)=>{
    console.log(error.message);
});
// 订阅音频合流
client.subscribe('mcu', 'audio').then((track)=>{
  track.play()
}).catch((error)=>{
    console.log(error.message);
});
```

- 离开频道。

```javascript
client.leave();
```

---
_Source: https://npm.io/package/dingrtc · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
