# ExtraHW
JiWang ExtraHW
----------------
杨:
三天时间, 每天睡5h, 从6.16晚上开始从零开始学习webrtc+JavaScript+flask的各种操作和源码, 到6.18晚上好像完成了大部分
6.19出现莫名其妙的bug, 因为着急准备算法期末考试, 实在是整不明白bug在哪里.
整了6.19一整天, 没整出来, 6.19晚上决定摆烂
6.22: 渣哥居然把ddl延长到这么远, 赞美渣哥, 上午重新研究bug, 发现是websocket发送事件有顺序问题, 成功解决
6.22 晚上: 真的把webrtc实现了, 还好这连着三天时间没白费, 如果提前一个月做, 做的效率有这三天的50%~60%, 大概能做的很好罢.
![hoarah_loux](./photo_readme/HOARAH_LOUX.png)
这几天的vscode的工作时间达到了惊人的44h, 除去4h是vscode干别的
平均到4天`(6.16晚~6.19晚 + 6.22全天)`里, 平均每天工作10H
~~感觉死神在朝我招手~~
----------------
---------------
#### TODO_服务端
1. ~~将ssl的证书文件整合到本目录下~~ 不干了, 就绝对地址罢
-----------------------
## ~~使用数据库的方法~~ 使含有数据库的server端正常运行的方法
先安装mariadb
- 数据库的用户要求是`root`(后期可能会改)
- 数据库的密码要求是`A6080o--a__TtVFR`
mariadb初始化: 执行`python ./initdatabase.py`即可
`initdatabase.py` 默认使用`./user.sql`, 如果要另外指定sql文件需要使用命令行参数
`python initdatabase.py <文件名>`
运行init.py的时候如果遇到如下错误
```
ModuleNotFoundError: No module named 'MySQLdb' flask
```
需要执行如下指令
```shell
pip install mysqlclient
```
-----------------------
## 使用配置文件的方法
默认配置文件为`./webrtc-Tony.conf`, 直接执行`python init.py`的话就会使用这个配置文件
如果想要使用其他的配置文件, 可以使用命令行参数
`python init.py <文件名>`
配置文件中现在支持的内容有, 配置文件中不出现的内容使用默认值, 默认值及配置文件示例如下
```properties
[root_dir]
dir = /home/webrtc/video # 录像保存位置, 暂时还用不到
[frame]
width=1920
high = 1080 # 高度
rate = 15 ;每秒帧率
[断联时间]
disconnect=15 #断联15s后提示
[ssl]
crt = /etc/pki/tls/certs/cert.crt # crt文件的位置
key = /etc/pki/tls/private/cert.key # key文件的位置
```
-----------------------
# 客户端与服务端通信方法:
使用socketIO
C接受S的信息:(C端写法)
在客户端的js文件里添加如下内容
```javascript
socket = io() //声明变量
//data和callback是两个变量名
//创建的这个function会在客户端收到Server发的事件的时候执行
socket.on('事件名', function(data, callback){
...
//data的格式是{name:value}的格式
//可以通过data['name']或者data.name的格式访问传送的内容
//callback可以不写, 是回调函数, 大概率用不上
//客户端收到信息后调用callback(参数), 服务端如果定义了对应的函数的话, 服务端会有对应的处理
//callback的例子: 客户端执行callback("event received!");
//如果服务端的对该callback的定义是print(arg), 那服务端就会输出上面的字符串
});
```
S接受C的信息:(C端写法)
在客户端的js文件里添加如下内容
```javascript
socket = io() //同上, 一个变量只需要一次这个
//格式为socket.emit('事件名', data, callback);
//例子:
socket.emit('client_event', {num1 : 114514, str1: "1919810"}, function(data){
console.log("server received data", data);
}
//server会收到名为'client_event'的事件
//server会收到{num1 : 114514, str1: "1919810"}数据包,
//server如果执行了callback函数, 则客户端会受到反馈, 在控制台上输出内容
```
# 部署方式
如果没有`python`和`pip`命令, 可以试一试有没有`python3`, `pip3`
```shell
pip install Flask
pip install configparser
pip install Flask-SocketIO
pip install Flask-SQLAlchemy
pip install mysqlclient # 运行init.py的时候如果提示没有MySQLdb, 需要运行这个
pip install pyOpenSSL
python init.py
```
安装完python的库就可以直接运行`init.py`了
需要先自己生成https的签名, 用http协议webrtc好像不好使
ssl生成的两个文件位置和文件名需要固定~~(因为路径写死了)~~, 否则需要在init.py文件中改`ssl_certificate`和`ssl_certificate_key`的值
生成的.crt文件必须是`/etc/pki/tls/certs/cert.crt`
生成的.key文件必须是`/etc/pki/tls/private/cert.key`
写的html文件需要放在templates文件夹下, 可以有子文件夹, 支持由服务端在打开一个html的时候提供一些信息, 如下
```html
学号: <input type="number" name="ID" value="{{user_id}}"> <br>
```
`{{变量名}}`这种格式的变量会在flask显示html的时候填充提供的信息, 服务端使用的python函数为``render_template("index.html", user_id=user_id)
上面一行在显示的时候会将value的 `{{user_id}}`替换为python传入的`user_id`变量的值, 可以是空, 具体样式为
![这样](./photo_readme/render.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 课程设计 基于Python+Flask+webrtc的监考录屏系统源码+部署文档+全部数据资料 高分项目.zip课程设计 基于Python+Flask+webrtc的监考录屏系统源码+部署文档+全部数据资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
课程设计 基于Python+Flask+webrtc的监考录屏系统源码+部署文档+全部数据资料 高分项目.zip (74个子文件)
Flask系统部署文档.md 3KB
JiWang_ExtraHW-main
init.py 26KB
photo_readme
HOARAH_LOUX.png 21KB
render.png 11KB
flask_run.sh 281B
server_src
read_config.py 2KB
DatabaseIO.py 8KB
MyConstants.py 393B
.gitattributes 66B
user.sql 2KB
990101
source
scaffold.py 32KB
cert.key 2KB
flask_run.sh 209B
user.sql 2KB
cert.crt 1KB
requirements.txt 136B
epel-release-8-15.el8.noarch.rpm 23KB
code
init.py 26KB
server_src
read_config.py 3KB
DatabaseIO.py 8KB
MyConstants.py 468B
templates
student.html 3KB
teacher.html 3KB
index.html 897B
change_password.html 982B
initdatabase.py 270B
static
js
socket.io.js 104KB
student.js 28KB
teacher.js 17KB
flask.service 147B
install.sh 2KB
document
webrtc_users_guide.md 7KB
photo_install
scaffold.png 34KB
image-20220701160423992.png 10KB
image-20220630213127150.png 24KB
image-20220630211559882.png 13KB
photo_userguide
image-20220701235604366.png 12KB
image-20220701205310598.png 33KB
image-20220701205650400.png 94KB
image-20220701201937454.png 8KB
image-20220701203018609.png 589KB
image-20220701202817176.png 19KB
image-20220701202344399.png 32KB
image-20220701205439861.png 34KB
image-20220701211027005.png 27KB
image-20220701205731856.png 47KB
image-20220701191123208.png 35KB
image-20220701205758865.png 9KB
webrtc_installation_guide.md 2KB
webrtc.technical_manual.md 3KB
photo_tech
image-20220702100210764.png 7KB
image-20220701222140467.png 22KB
image-20220701221017660.png 12KB
image-20220702005834102.png 49KB
image-20220701215518740.png 61KB
config
webrtc-Tony.conf 360B
turnserver.conf 28KB
webrtc-Tony.conf 188B
ppt.pptx 171KB
templates
student.html 3KB
teacher.html 3KB
index.html 897B
change_password.html 982B
webrtc_users_guide.pdf 1.33MB
initdatabase.py 270B
webrtc_installation_guide.pdf 196KB
webrtc.technical_manual.pdf 298KB
.gitignore 104B
static
js
socket.io.js 104KB
student.js 28KB
teacher.js 17KB
README.md 4KB
flask.service 173B
171265889347208773632.zip 416B
共 74 条
- 1
资源评论
- dondong3552024-07-21资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~
不走小道
- 粉丝: 3365
- 资源: 5054
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- dbeaver-ce-24.3.1-x86-64-setup.exe
- 国际象棋桌子检测6-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- 某平台广告投入分析与销售预测
- 连接ESP32手表来做验证20241223-140953.pcapng
- 小偏差线性化模型,航空发动机线性化,非线性系统线性化,求解线性系统具体参数,最小二乘拟合 MATLAB Simulink 航空发动机,非线性,线性,非线性系统,线性系统,最小二乘,拟合,小偏差,系统辨
- 好用的Linux终端管理工具,支持自定义多行脚本命令,密码保存、断链续接,SFTP等功能
- Qt源码ModbusTCP 主机客户端通信程序 基于QT5 QWidget, 实现ModbusTCP 主机客户端通信,支持以下功能: 1、支持断线重连 2、通过INI文件配置自定义服务器I
- QGroundControl-installer.exe
- 台球检测40-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 颜色拾取器 for Windows
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功