腾讯企业邮箱在线办理

企业邮箱
最新问题
接口文档

联系我们

深圳市美奔科技有限公司

  • 地址:深圳市南山区科苑路9号园西工业区23栋北602(深大A4出口)
  • Email:winton@bqq8.com
  • 邮编:518000
  • 电话:15818558013
  • 联系人:林先生

腾讯云随心播demo互动直播解决方法后台源码APP源码

发布日期:2018年04月04日    浏览次数:3042    关键字: 公司 新闻

随心播demo主要使用的腾讯云服务是
互动直播和IM下面有腾讯云官网提供的随心播demo 大家可以下载使用。

github下载地址:

https://github.com/zhaoyang21cn








有一个简单的PHP后台环境
地址是:https://github.com/zhaoyang21cn/SuiXinBoPHPServer

随心播 Server QuickStart

该后台演示了在互动直播 独立账号模式 下如何为App提供用户管理接口,作为开发者后台,该后台与开发者App及互动直播server的关系如下图所示: 

1. 代码部署

1.1 搭建PHP和数据库环境

服务器环境要求
  • Linux OS

  • PHP >= 5.4

  • MySQL >= 5.5.3

1.2 数据库建表建库

  • 执行sxb_db.sql文件中的sql。

mysql -u root -p #此处可能需要输入mysql密码> source sxb_db.sql #执行建库脚本

1.3 修改配置

  • 下载代码,部署到php目录中

  • 在lib/db/DBConfig.php填写mysql的数据库url、用户名和密码

  • 在Config.php中填写默认的SDKAppID及对应用于跨房连麦的权限密钥:

    define('DEFAULT_SDK_APP_ID', 'Your_SDK_APP_ID'); //默认APPID    define('AUTHORIZATION_KEY', serialize([        'Your_SDK_APP_ID' => 'Your_Authrization_Key'    ])); //权限密钥表
  • 上传SDKAppID对应的公私钥到deps/keys/[SDKAppID]目录下,使其具有可读权限([SDKAppID]替换为你所使用的SDKAppID)

  • 在Config.php中填写secretID和SecretKey用于拉取视频列表:secretID和SecretKey就是腾讯云账号的的APIkey

    define('VIDEO_RECORD_SECRET_ID', 'Your_Video_Secret_ID'); //Secret ID  --录像使用    define('VIDEO_RECORD_SECRET_KEY', 'Your_Video_Secret_Key'); //Secret Key--录像使用
  • 修改service/service/Server.php的这句代码为自己的日志路径

    $handler = new FileLogHandler('/data/log/sxb/sxb_' . date('Y-m-d') . '.log');
  • 修改deps/bin/tls_licence_tools具有可执行权限,用于生产userSig;32位OS请用tls_licence_tools_32替换tls_licence_tools(tls_licence_tools名字不变)

  • 修改deps/bin/linksig具有可执行权限,用于生成跨房连麦sig

  • 修改deps/sig目录权限,使得其他用户有可读写执行权限(chmod 757 deps/sig),用于生成sig临时文件的目录。

  • 如果您在使用直播码进行旁路推流,调整service/live/ReportLiveRoomInfoCmd.php代码的BIZID。

    const BIZID = '123456';
  • 如果想使用图片上传功能,需要开通腾讯云COS服务,并在deps/cos-php-sdk/Conf.php填写对应APPID、SecretKey和SecretID。

1.4 确定服务器已正常运行

  • 在浏览器中访问 http://your.server.hostname/index.php,若显示以下json数据说明服务器已正常运行:

{"errorCode":10001,"errorInfo":"Invalid request."}

2. 请求格式说明

2.1 HTTP请求格式

  • HTTP请求的类型为 POST

  • HTTP请求的URL格式为 http://your.server.hostname/index.php?svc=*&cmd=*

  • HTTP请求的 Content-Type 为 application/json; charset=utf-8

  • HTTP请求的内容为json格式的参数描述

  • HTTP请求的URL中的 svccmd 取值及内容中的参数格式详见接口文档

2.2 HTTP请求实例

2.2.1 Qt发送登录请求

QString text(QStringLiteral("{\"id\":\"username\",\"pwd\":\"password\"}"));
QByteArray const data = text.toUtf8();

QNetworkRequest request(QUrl(QStringLiteral("http://your.server.hostname/index.php?svc=account&cmd=login")));
request.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/json; charset=utf-8"));

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
manager->post(request, data);

2.2.2 Android发送登录请求

  • 参考随心播中的 UserServerHelper

  • 将类中 SERVER 字段的域名替换为自己的服务器域名

  • 调用类方法进行服务器接口访问

UserServerHelper.getInstance().loginId("username", "password");

2.2.3 iOS发送登录请求

  • 参考随心播中的 WebService 工具类

  • 将类 BaseRequest 中 - (NSString *)hostUrl 接口返回值的域名替换为自己的服务器域名

  • 调用工具类进行服务器接口访问

LoginRequest *sigReq = [[LoginRequest alloc] initWithHandler:^(BaseRequest *request) {
    LoginResponceData *responseData = (LoginResponceData *)request.response.data;    //登录成功
    //responseData.token 返回token
    //responseData.userSig 返回userSig} failHandler:^(BaseRequest *request) {    //登录失败    }];
sigReq.identifier = @"username";
sigReq.pwd = @"password";
[[WebServiceEngine sharedEngine] asyncRequest:sigReq];

3. 代码目录结构

3.1 service

服务层,也就是接口层,主要包括:账号管理,直播服务、AV房间服务、COS服务。每个服务(亦即模块)下是各个子接口。详细可参看协议文档。

3.1.1 直播服务

  • 开始直播:数据库Replace一条记录,注意一个用户同一时间最多只能有一场直播;

  • 直播结束:从数据库中删除记录;

  • 直播列表:从数据库分页获取直播列表;

  • 直播心跳包:客户端10秒发一次心跳包更新数据。

3.1.2 Cos服务

获取Cos签名。

3.1.3 AvRoom服务

获取AV房间号。

3.2 model

数据层。

3.3 client-data

客户端数据对象层,主要用于接收和返回给客户端的数据对象。

3.4 lib

包括数据库和日志等库。

3.5 deps

依赖库和依赖程序和文件,主要是其他项目或者SDK,比如腾讯云COS SDK。

3.6 cron

后台定时任务。清理90秒没有发心跳包的直播记录。可以crontab定时执行。

4. 再次强调

  • sig目录其他用户一定要有读写可执行权限

  • deps/bin/tls_licence_tools签名程序一定可执行权限

  • deps/bin/linksig程序一定可执行权限

  • 上传需要支持的SDKAppID对应的公私钥到deps/keys/[SDKAppID]目录


来自8n8k.com

评论(0 条评论)
游客