1 Star 1 Fork 0

hackrol / srs-rtc-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

srs-rtc-server

基于SRS视频服务器实现简易音视频通话系统——信令服务器

前言

一个基于Node.js、MySQL、Socket.io等实现的具有用户注册、角色管理、音视频通话管理的信令服务器。

系统组成

系统结构

角色划分:

  • 管理员:管理员注册、登录、连接信令服务器,支持查看当前客户端会见房间信息、发起、结束通话等功能;(功能完善开发中...)
  • 客户端:客户端注册、登录、连接信令服务器,支持私聊、群聊、聊天室功能。

目录结构

.srs-rtc-server
├── app.js --服务启动入口
├── cert --SSL证书相关文件
│   ├── server.key
│   └── server.pem
├── config -配置文件目录
│   └── config.yml -配置文件
├── db --数据库文件目录
│   └── srs_rtc.sql --sql文件
├── docker-build-cmd.txt --创建docker镜像命令,弃用。
├── docker-compose.yml --docker-compose.yml
├── Dockerfile --Dockerfile
├── package.json --package.json
├── package-lock.json --package-lock.json
├── README.md --README.md
├── src --源码
│   ├── config 
│   │   └── config.js --读取config.yml配置文件
│   ├── constant
│   │   ├── apiConstant.js --Api服务相关常量
│   │   └── signalConstant.js --信令服务相关常量
│   ├── controller
│   │   ├── api.js --api接口服务相关
│   │   ├── signal.js --信令服务相关
│   │   └── user.js --封装的一些操作用户数据库相关方法
│   ├── db
│   │   └── mysql.js --数据库连接、查询工具类
│   └── model
│       └── responseModel.js --请求返回公共基类
└── yarn.lock --yarn.lock

Getting Started

运行环境

  • 安装MySQL(必须安装)
  • 安装Node.js(如果运行方式使用的是Docker,则可不装)

配置Mysql

srs_rtc.sql导入MySQL中。

部署SRS

部署步骤详见SRS-Wiki,启用WebRTC。

配置文件修改

  • 修改config.yml中的配置文件;
  • 其中mysqlConfig中的host、port、user、password、database为必须修改项,根据自己的实际环境进行修改。
  • 其他选项可根据自己需求自行调整;

cert目录中是自签的SSL证书,用于启用HTTPS,您也可以自行修改证书文件,但同时也要修改配置文件中ssl里的keyPath和pemPath的路径。

启动服务

Node.js

npm install

npm start

Yarn

yarn

yarn start

Docker

  1. 安装docker-compose.
  2. 如果config.yml中端口有调整,请同步调整Dockerfile中对应的端口。
cd srs-rtc-server

docker-compose up -d

查看服务是否启动成功

.\srs-rtc-server> yarn start
yarn run v1.22.17
$ node app.js
config.yml: {
  mysqlConfig: {
    host: 'localhost',
    port: 3306,
    user: 'srs_rtc',
    password: '123456',
    database: 'srs_rtc'
  },
  apiConfig: { httpPort: 9898, httpsPort: 9899 },
  socketIoConfig: { httpPort: 9998, httpsPort: 9999 },
  ssl: { keyPath: './cert/server.key', pemPath: './cert/server.pem' },
  maxSizeOfRoom: 9
}
ApiHttpServer listen: 9898
ApiHttpsServer listen: 9899
SignalHttpServer listen: 9998
SignalHttpsServer listen: 9999

打印上面这个日志,表示成功启动。

文档

Api接口文档(支持http、https)

用户注册、登录、信息查询等接口;
在线文档

信令文档

管理员(开发中...)

  • 连接地址:
ws://ip:port/srs_rtc/signal/administrator?userId=xxx
wss://ip:port/srs_rtc/signal/administrator?userId=xxx
http://ip:port/srs_rtc/signal/administrator?userId=xxx
https://ip:port/srs_rtc/signal/administrator?userId=xxx

客户端

  • 连接地址:
ws://ip:port/srs_rtc/signal/client?userId=xxx
wss://ip:port/srs_rtc/signal/client?userId=xxx
http://ip:port/srs_rtc/signal/client?userId=xxx
https://ip:port/srs_rtc/signal/client?userId=xxx

LICENSE

MIT License Copyright (c) 2022 沈犇 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
JavaScript 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/hackrol/srs-rtc-server.git
git@gitee.com:hackrol/srs-rtc-server.git
hackrol
srs-rtc-server
srs-rtc-server
master

搜索帮助