# xiaozhibo_server_php
**Repository Path**: joysing/xiaozhibo_server_php
## Basic Information
- **Project Name**: xiaozhibo_server_php
- **Description**: 小直播业务后台,用于小直播iOS、Android App的访问。
- **Primary Language**: PHP
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-05-06
- **Last Updated**: 2022-06-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 小直播解决方案服务端
为观众端提供直播间列表和回放列表,以及账号注册、登录、个人信息维护等功能。
## 云服务开通
### 开通直播服务
#### 1. 申请开通视频直播服务
进入 [直播管理控制台](https://console.cloud.tencent.com/live),如果服务还没有开通,则会有如下提示:

点击申请开通,之后会进入腾讯云人工审核阶段,审核通过后即可开通。
#### 2. 配置直播码
直播服务开通后,进入[【直播控制台】>【直播码接入】>【接入配置】](https://console.cloud.tencent.com/live/livecodemanage) 完成相关配置,即可开启直播码服务:

点击【确定接入】按钮即可。
#### 3. 获取直播服务配置信息
从直播控制台获取`APP_ID`、`APP_BIZID`、`API_KEY`,后面配置服务器会用到:

### 开通云通信服务
#### 1. 申请开通云通讯服务
进入[云通讯管理控制台](https://console.cloud.tencent.com/avc),如果还没有服务,直接点击**直接开通云通讯**按钮即可。新认证的腾讯云账号,云通讯的应用列表是空的,如下图:

点击**创建应用接入**按钮创建一个新的应用接入,即您要接入腾讯云IM通讯服务的App的名字,如下图所示:

点击确定按钮,之后就可以在应用列表中看到刚刚添加的项目了,如下图所示:

#### 2. 配置独立模式
上图的列表中,右侧有一个**应用配置**按钮,点击这里进入下一步的配置工作,如下图所示。

#### 3. 获取云通讯服务配置信息
从云通信控制台获取`IM_SDKAPPID`、`IM_ACCOUNTTYPE`、`ADMINISTRATOR`、`PRIVATEKEY`、`PUBLICKEY`,后面配置服务器会用到:

从验证方式中下载公私钥,解压出来将private_key用文本编辑器打开,如:
```bash
-----BEGIN PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END PRIVATE KEY-----
```
将上面的内容直接复制到后面的配置脚本中,用于在小直播后台生成IM签名。
将其转换成字符串形式如下所示,后面在server配置文件(config.js)中使用,请注意每行后面要加入\r\n:
```bash
"-----BEGIN PRIVATE KEY-----\r\n"+
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+
"-----END PRIVATE KEY-----\r\n"
```
### 开通对象存储服务
#### 1. 申请开通对象存储服务
进入[对象存储服务控制台](https://console.cloud.tencent.com/cos5),如果还没有服务,直接点击**创建存储桶**按钮即可,如下图:

#### 2. 创建bucket获取基本信息
填写bucket名,选择bucket所属地域,读写权限创建存储桶。

点击确定按钮,之后就进入了刚刚创建的存储桶管理界面,选择基础配置获取`COSKEY_APPID`、`COSKEY_BUCKET`、`COSKEY_BUCKET_REGION`等信息,后面配置服务器会用到。

#### 3. 获取秘钥信息
进入[【对象存储控制台】>【密钥】>【云API密钥】](https://console.cloud.tencent.com/cam/capi)获取`COSKEY_SECRETID`、`COSKEY_SECRETKEY`

## 业务后台集成和部署
### 腾讯云CVM镜像部署
**第一步** [新建CVM主机](https://console.cloud.tencent.com/cvm)

**第二步** 进服务市场选取镜像 推荐使用图中的**小直播镜像**。

**第三步** 配置硬盘和网络,以及云主机访问密码,妥善保管好密码,然后设置安全组。

**第四步** 付款后生成云主机。点击登录可以通过腾讯云的网页shell进行访问,也可以用 **putty** 或 **SecretCRT** 采用ssh登录到主机。

**第五步** 修改云主机配置信息
将如下脚本中的`APP_ID`、`APP_BIZID`、`API_KEY`、`COSKEY_BUCKET`、`COSKEY_BUCKET_REGION`、`COSKEY_SECRECTKEY`、 `COSKEY_APPID`、`COSKEY_SECRECTID`、`IM_SDKAPPID`、`IM_ACCOUNTTYPE`配置成上述直播服务、云通信服务、COS服务里生成的值并保存。然后登录云主机,直接在云主机上执行修改后的脚本。
下面代码中第一个echo后跟着的双引号内是IM私钥的文本信息,把云通信的private_key用文本编辑工具打开复制下来填到双引号内就可以了。
注意:请在本地修改以下配置并复制,然后登录云主机在控制台粘贴回车执行。
```bash
#!/bin/bash
echo "-----BEGIN PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END PRIVATE KEY-----" > /data/live_demo_service/deps/sig/private_key;
echo "" > /data/live_demo_service/conf/OutDefine.php;
```
**至此业务后台部署完成**
## 配置RoomService服务
首先下载[RoomTool工具](http://download-1252463788.file.myqcloud.com/RoomTool/RoomTool.zip) 并解压缩。
**第一步** 安装Nodejs环境

**第二步** 修改工具包根目录下的config.js文件中的参数,替换成上述直播服务及云通信服务里生成的值。

**第三步** 提交配置参数
进入到目录RoomTool,执行以下命令提交配置参数:
```bash
node setConfigInfo.js 1 //1表示传送私钥给腾讯云RoomService后台
```

提交成功后可以执行node genLoginInfo.js命令来验证参数是否配置成功。
## 终端集成及回调设置
终端集成主要是小直播源码集成,主要是以下简单几步:
### 小直播源码下载
[小直播源码下载](https://cloud.tencent.com/document/product/454/7873#Xiaozhibo),点击后下载**小直播IOS**和**小直播Android**
### 替换小直播后台服务器地址
- iOS
> 源码包解压后在TCLVBIMDemo/Classes/LVB/Base 目录下有一个**TCConstants.h**文件,将文件里的`kHttpServerAddr`改成您的云主机服务器地址。
- Android
> 源码包解压后在app/src/main/java/com/tencent/qcloud/xiaozhibo/base目录下有一个**TCConstants.java**文件,将文件里的`APP_SVR_URL`改成您的云主机服务器地址。
`注意:如果服务器没有配置证书,这里的云主机服务器地址需要用http,而不能用https。`
### 设置回调地址
在直播管理控制台设置回调地址,腾讯云后台在相应事件发生时(如流状态改变、视频录制完成、截图完成等),通过该地址回调给业务服务器,业务服务器做相应处理,事件回调的详细信息可以参考[事件消息通知](https://cloud.tencent.com/document/product/267/5957)
配置方式,在[直播控制台>>直播码接入>>接入配置](https://console.cloud.tencent.com/live/livecodemanage)配置回调URL,如果您未修改过小直播业务服务器的代码,回调URL的格式为:
```bash
http://您的云主机服务器地址/callback/tape_callback.php
```
