随心播 Server QuickStart
该后台演示了在互动直播 独立账号模式 下如何为App提供用户管理接口,作为开发者后台,该后台与开发者App及互动直播server的关系如下图所示:
1. 代码部署
1.1 搭建PHP和数据库环境
服务器环境要求
Linux OS PHP >= 5.4 MySQL >= 5.5.31.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用于拉取视频列表({{.}}不需要保留
):
define('CLOUDAPI_SECRET_ID', '{{.Your_CloudAPI_Secret_ID}}'); //云API Secret ID define('CLOUDAPI_SECRET_KEY', '{{.Your_CloudAPI_Secret_Key}}'); //云API Secret Key 修改service/service/Server.php的这句代码为自己的日志路径
$handler = new FileLogHandler('/data/log/sxb/sxb_' . date('Y-m-d') . '.log');
修改deps/bin/linksig具有可执行权限,用于生成跨房连麦sig
如果您在使用直播码进行旁路推流,在Config.php中填写BIZID字段({{.}}不需要保留
):
define('BIZID', '{{.Your_Biz_ID}}'); //直播ID 如果想使用图片上传功能,需要开通腾讯云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中的 svc
、cmd
取值及内容中的参数格式详见接口文档
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. 再次强调
deps/bin/linksig程序一定可执行权限 上传需要支持的SDKAppID对应的公私钥到deps/keys/[SDKAppID]目录
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。