添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
# Rtc Streaming Cloud Server-Side Library For PHP
## Features
- RoomToken 签发
- [x] 生成 RoomToken: client->appToken()
- App 管理
- [x] 创建应用: client->createApp()
- [x] 获取应用配置信息: client->getApp()
- [x] 更新应用配置信息: client->updateApp()
- [x] 删除应用: client->deleteApp()
- 房间管理
- [x] 列举房间下的所有用户: client->listUser()
- [x] 指定一个用户踢出房间: client->kickUser()
- [x] 停止一个房间的合流转推: client->stopMerge()
- [x] 获取当前所有活跃的房间: client->listActiveRooms()
## Demo
- RoomToken 签发
- [生成 RoomToken](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_create_roomToken.php)
- App 管理
- [创建应用](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_createApp.php)
- [获取应用配置信息](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_getApp.php)
- [更新应用配置信息](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_updateApp.php)
- [删除应用](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_deleteApp.php)
- 房间管理
- [列举房间下的所有用户](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_listUser.php)
- [指定一个用户踢出房间](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_kickUser.php)
- [停止一个房间的合流转推](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_stopMerge.php)
- [获取当前所有活跃的房间](https://github.com/qiniu/php-sdk/tree/master/examples/rtc/rtc_rooms_listActiveRooms.php)

View File

@@ -0,0 +1,32 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// 绑定的直播hub使用此hub的资源进行推流等业务功能hub与app必须属于同一个七牛账户
$hub = 'rtchub';
// app 的名称注意Title 不是唯一标识,重复 create 动作将生成多个 app
$title = 'rtc';
// 连麦房间支持的最大在线人数
$maxUsers = 20;
// 创建应用
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->createApp($hub, $title, $maxUsers);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Create Successfully \n";
var_dump($ret);
}

View File

@@ -0,0 +1,34 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称,需满足规格 ^[a-zA-Z0-9_-]{3,64}$
$roomName = 'room01';
// 请求加入房间的用户 ID需满足规格 ^[a-zA-Z0-9_-]{3,50}$
$userId = '001';
// 鉴权的有效时间传入以秒为单位的64位 Unix 绝对时间token 将在该时间后失效
$expireAt = time()+3600;
// "admin"或"user",默认为"user" 。当权限角色为"admin"时,拥有将其他用户移除出房间等特权
$permission = 'admin';
// 生成加入房间的令牌 RoomToken
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#1
$RoomToken = $client->appToken($appId, $roomName, $userId, $expireAt, $permission);
echo "\n====> Create RoomToken Successfully \n";
var_dump($RoomToken);

View File

@@ -0,0 +1,25 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 删除应用
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->deleteApp($appId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Delete $appId Successfully \n";
}

View File

@@ -0,0 +1,26 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 获取一个应用当前的配置信息
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->getApp($appId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> $appId Conf: \n";
var_dump($ret);
}

View File

@@ -0,0 +1,31 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 操作所剔除的用户
$userId = '001';
// 指定一个用户踢出房间
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->kickUser($appId, $roomName, $userId);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Kick User $userId Successfully \n";
}

View File

@@ -0,0 +1,35 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 所查询房间名的前缀索引,可以为空
$prefix = null;
// 分页查询的位移标记
$offset = null;
// 此次查询的最大长度
$limit = 100;
// 获取当前所有活跃的房间
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->listActiveRooms($appId, $prefix, $offset, $limit);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Active Rooms:\n";
var_dump($ret);
}

View File

@@ -0,0 +1,29 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 列出指定房间下当前所有用户
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->listUser($appId, $roomName);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> User List: \n";
var_dump($ret);
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成
$appId = 'xxxx';
// 房间名称
$roomName = 'room01';
// 停止一个房间的合流转推
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_2
list($ret, $err) = $client->stopMerge($appId, $roomName);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Stop Merge Successfully \n";
}

View File

@@ -0,0 +1,40 @@
<?php
require_once __DIR__ . '/../../autoload.php';
use Qiniu\Auth;
use Qiniu\Rtc\AppClient;
// 控制台获取密钥https://portal.qiniu.com/user/key
$accessKey = getenv('QINIU_ACCESS_KEY');
$secretKey = getenv('QINIU_SECRET_KEY');
$auth = new Auth($accessKey, $secretKey);
$client = new AppClient($auth);
// app 的唯一标识,创建的时候由系统生成。
$appId = "xxxx";
// 绑定的直播hub使用此hub的资源进行推流等业务功能hub与app必须属于同一个七牛账户
$hub = 'rtchub';
// app 的名称注意Title 不是唯一标识,重复 create 动作将生成多个 app
$title = 'rtc';
// 连麦房间支持的最大在线人数
$maxUsers = 30;
// 连麦合流转推 RTMP 的配置
$mergePublishRtmp = array();
$mergePublishRtmp['enable'] = true;
// 更新一个应用的配置信息
// 注意:调用这个接口后仅对调用后新创建的房间有效,已经存在的房间需要等待被关闭重新创建后生效
// 参考文档https://doc.qnsdk.com/rtn/docs/server_overview#2_1
list($ret, $err) = $client->updateApp($appId, $hub, $title, $maxUsers, false, $mergePublishRtmp);
if ($err !== null) {
var_dump($err);
} else {
echo "\n====> Update $appId Conf Successfully \n";
var_dump($ret);
}