花了点时间跟着B站的教程手敲了一个关于WebRtc的项目,它是B/S框架的,用js做的前后端。工具用的是node,可以说是非常的方便。js语法本身也简单易学,和C有很多相似之处。总的来说nodejs YYDS(q(≧▽≦q))
整个项目可以分为三大块
- 身份验证:登录、注册
涉及到前端界面,数据库,信令服务器,node web服务器
- 聊天室
涉及到前端界面,信令服务器,node web服务器
- 1v1聊天室
涉及到前端界面,信令服务器,node web服务器,NAT穿透服务器(当然我这里没有搭建,所以候选者用的host,毕竟就是为了学习WebRtc)
相关设计
1、B/S架构模式
2、登录界面设计
3、音视频聊天界面设计
4、文字输入输出界面设计
5、房间创建与退出功能
6、音视频聊天服务
7、文字聊天服务处理
8、信令服务处理
9、NAT穿透服务处理
用到的node模块
http https 用于支持http https协议
sqlite3 数据库模块
log4js 主要用于服务器的控制台输出日志
socket.io 用于信令服务器的设计(额外还需要再客户端引入对应版本的socket.io.js)
express server-index 两者结合使用,用于将网页以文件夹的形式展示出来
内容很多,以下主要展示信号监听相应的js代码,项目的主要内容也就是这里
server.js(服务器)
1 |
|
login.js(登录)
1 | function start(){ |
regist.js(注册)
1 | function start(){ |
chat.js(聊天室)
这里的taMsgList指向的是一个textarea标签
1 | function start(){ |
videoRoom.js(视频聊天)
这里有一个状态机的概念,基status的状态,它的设计是为保证所有情况的发生都有正确的处理
1 | function conn(){ |
说些什么吧!