一、文档说明

1、写在前面2、错误代码表

二、用户接口

1、发送邮箱验证码接口2、用户登录接口3、获取我的个人信息接口4、修改我的资料接口5、临时用户相关说明6、获取指定用户个人资料接口7、禁言用户接口8、禁止用户点歌接口9、取消用户的禁言和禁歌10、摸一摸用户接口11、第三方登录接口

三、房间接口

1、获取热门房间接口2、获取房间详情接口3、获取房间在线人员列表4、修改房间信息接口5、获取指定房间当前正在播放音乐接口6、获取聊天室指定房间的历史记录7、撤回消息接口

四、歌曲接口

1、歌曲搜索接口2、获取LRC歌词接口3、歌曲播放地址跳转地址4、管理员或房主切歌接口5、用户点歌接口6、指定房间当前的已点歌曲列表7、将已点歌曲列表中指定歌曲置顶8、管理或房主移除已点歌曲接口9、获取我点过的歌列表接口10、从我的歌单删除歌曲接口

五、Websocket

1、获取Websocket连接地址2、发送文字消息接口3、发送图片消息接口4、WebSocket消息解析说明文档

六、图片接口

1、搜索图片表情包2、上传图片接口

七、第三方合作接口

1、第三方接入聊天室使用手册与帮助文档2、聊天室绑定第三方独立域名3、SVG外链和iFrame播放器外链使用说明4、合作网站5、聊天室插件开发使用文档6、从零开始部署一个你自己的BBBUG音乐聊天室

八、下载相关

1、Windows客户端下载

九、部署相关

0、写在最前面1、部署API端步骤说明2、部署Websocket服务端步骤3、部署最后的前端部分
6、从零开始部署一个你自己的BBBUG音乐聊天室
手机阅读

扫描二维码阅读文章

本文说明

因很多小伙伴在部署时碰到一些问题,这里写一个简单的部署手册,以便小伙伴们碰到问题后可以快速查阅解决。

部署步骤

一、域名解析

首先,将你的域名解析到服务器对应的IP地址,我这里为了方便,解析了个三级通配域名:

记录 记录类型 目标IP
bbbug_api A 127.0.0.1
bbbug_www A 127.0.0.1
bbbug_ws A 127.0.0.1

接下来,我将bbbug_api.hamm.cn作为API端地址,bbbug_ws.hamm.cn作为websocket地址,bbbug_www.hamm.cn作为前端地址。

二、部署API端

准备工作,你需要给服务器安装redis、supervisor、MySQL等组件

  1. Clone我们代码仓库的API仓库:git clone https://gitee.com/bbbug_com/ChatAPI.git BBBUG_API
  2. 创建虚拟站点,目录指向BBBUG_API文件夹下的public目录:
  3. 配置Thinkphp在Nginx下的rewrite,并配置跨域头;
  4. 如果需要配置https,请百度查阅资料进行https的配置。

完整配置如下:

server
{
    listen 80;
    server_name bbbug_api.hamm.cn;
    index index.php index.html;
    
    #允许跨域header
    add_header Access-Control-Allow-Origin * always;
    add_header Access-Control-Allow-Headers * always;
    add_header Access-Control-Allow-Methods * always;
    add_header Access-Control-Max-Age 86400 always;
    
    #路径为你Clone项目的public目录
    root  /home/bbbug/BBBUG_API/public;
    
    #强制http跳转到https访问
    if ( $scheme = "http" ){
        rewrite  (.*)  https://$http_host$1;
    }
    
    #配置https
    listen 443 ssl http2; #我这里开启了http2 如不需要 删掉 http2
    ssl_certificate /usr/local/nginx/conf/ssl/hamm.cn/fullchain.cer; #证书地址
    ssl_certificate_key /usr/local/nginx/conf/ssl/hamm.cn/hamm.cn.key; #证书密钥
    ssl_session_timeout 10m;
    ssl_session_cache shared:SSL:10m;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; 
    #我这里启动了TLSv1.3 如果你服务器不支持,删掉即可
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always; 
    #HSTS配置 如不需要 删掉本行
    
    #配置thinkphp伪静态rewrite规则
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }
    
    location ~ [^/]\.php(/|$)
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp3)
    {
        expires      30d;
    }
    access_log off;
}
  1. BBBUG_API目录下执行composer install,期间可能发生N个错误,请根据错误提示解决composer的相关问题:)

直到你看到这个提示: Succeed!

如果不出意外,你将会看到我满怀情深的问候: Hello BBBUG.COM!

接下来,将根目录下的.example.env复制或者修改一份为.env并修改其中的数据库配置。

这时,我们建议设置APP_DEBUG=true,以便你解决接下来遇到的各种问题:)

同时,创建数据库并将根目录下的Database.sql导入到数据库中,如果不出意外,访问 https://bbbug_api.hamm.cn/api将提示 请先配置sa_conf表的api_url字段数据

于是将https://bbbug_api.hamm.cn/配置到sa_conf表中的api_urlstatic_url字段数据上。

再次访问,你将得到一段JSON

{"code":200,"msg":"open","data":{"success":1,"systemVersion":1622013180}}

API端基本部署完成。

三、部署Websocket端

websocket基于node开发,请先安装好node环境,并安装好相关的依赖库,如pm2,node-websocket等。

修改BBBUG_API目录下的websocket_bbbug_chat.js,将apiUrl修改为刚才部署好的https://bbbug_api.hamm.cn

然后执行 node websocket_bbbug_chat.js 将会启动websocket服务:

Ready now.
**********************************
服务启动成功(10011)Websocket
当前在线连接数:(0)
Web服务{10012}启动成功!
当前在线连接数:(0)
当前在线连接数:(0)
当前在线连接数:(0)
当前在线连接数:(0)
当前在线连接数:(0)
当前在线连接数:(0)

我们建议用PM2对这个服务进行守护,避免这东西跟PHP一样不争气

如果你将要配置https站点,你可能需要按下面的nginx反向代理进行wss配置:

server{
    listen 80;
    server_name bbbug_ws.hamm.cn;

    #配置https
    listen 443 ssl http2; #我这里开启了http2 如不需要 删掉 http2
    ssl_certificate /usr/local/nginx/conf/ssl/hamm.cn/fullchain.cer; #证书地址
    ssl_certificate_key /usr/local/nginx/conf/ssl/hamm.cn/hamm.cn.key; #证书密钥
    ssl_session_timeout 10m;
    ssl_session_cache shared:SSL:10m;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 我这里启动了TLSv1.3 如果你服务器不支持,删掉即可
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always; #HSTS配置 如不需要 删掉本行
    
    location / {
        proxy_pass http://127.0.0.1:10011;
    	proxy_http_version 1.1;
    	proxy_set_header Upgrade $http_upgrade;
    	proxy_set_header Host $host;
    	proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
}

不出意外,websocket服务端部署完成!

四、部署web前端

  1. Clone我们提供的前端仓库:git clone https://gitee.com/bbbug_com/ChatWEB.git BBBUG_WEB
  2. 修改BBBUG_WEB/src/main.js中的:

apiUrl: "https://bbbug_api.hamm.cn/",
staticUrl: "https://bbbug_api.hamm.cn/",
wssUrl: "wss://bbbug_ws.hamm.cn/",

如果你无需https,上面的wssUrl改为ws://服务器IP:10011

  1. 安装相关依赖项,在BBBUG_WEB根目录执行npm install
  2. 编译并生成发布文件 npm run build,接下来会在BBBUG_WEB下生成dist目录
  3. 创建虚拟站点并绑定刚才创建的dist目录:
server
{
    listen 80;
    server_name bbbug_www.hamm.cn;
    index index.html;
    
    #绑定编译的dist目录
    root  /home/bbbug/BBBUG_WEB/dist/;
    
    #强制http跳转到https访问
    if ( $scheme = "http" ){
        rewrite  (.*)  https://$http_host$1;
    }
    
    #解决SPA下404的问题
    location / {
        try_files $uri $uri /index.html;
    }
    
    #配置https
    listen 443 ssl http2; #我这里开启了http2 如不需要 删掉 http2
    ssl_certificate /usr/local/nginx/conf/ssl/hamm.cn/fullchain.cer; #证书地址
    ssl_certificate_key /usr/local/nginx/conf/ssl/hamm.cn/hamm.cn.key; #证书密钥
    ssl_session_timeout 10m;
    ssl_session_cache shared:SSL:10m;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 我这里启动了TLSv1.3 如果你服务器不支持,删掉即可
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always; #HSTS配置 如不需要 删掉本行
    
    access_log off;
}

同时将部署好的前端地址https://bbbug_www.hamm.cn/更新到sa_conf表的front_url字段数据上

前端就基本部署完成啦~

五、歌曲同步

接下来回到BBBUG_API目录中,启动两个命令:

  • php think Song
  • php think Download

我们推荐用Supervisord守护一下这两个进程,避免频繁挂掉。

到此,你的聊天室应该已经有音乐啦!

六、邮箱配置和第三方登录等配置

邮箱登录部分,请到邮件服务商找到邮件服务器、端口、账号密码等,然后修改到sa_conf表中即可。

第三方登录,请申请第三方登录的相关appid、secret,修改到sa_app表中,并修改app/api/controller/user.php中的thirdlogin```方法对应的参数中即可。

另外,前端项目BBBUG_WEB/src/main.js中同时需要修改这部分参数,并重新执行npm run build编译即可。

七、其他配置

小程序相关参数配置请直接填入sa_conf表中即可。