前言
WebRTC 实现P2P音视频通话系列记录了从零->搭建信令服务器->搭建stun/turn P2P穿透和转发服务器->WebRTC P2P音视频通话,
WebRTC 实现P2P音视频通话——搭建信令服务器 本文将在公网服务器主机上使用node.js搭建一个简单的聊天室
1、安装NodeJS,npm
通过SSH进入服务器主机
ssh 用户名@IP地址 例如:ssh root@192.168.1.1
通过apt 搜索一下nodejs相关信息
apt search nodejs
通过apt进行安装(也可以通过源码进行编译安装,源码地址:Node.js 中文网)
apt install nodejs
安装完成,查看nodejs版本
nodejs --version
2、服务器端实现
2.1引入库
通过npm安装接下来需要的第三库 //serve-index 将文件夹中文件列表显示到浏览器中
npm install serve-index
//express 目前最流行的基于Node.js的Web开发框架
npm install express
//socket.io 网络通信开发框架
npm install socket.io
👇socket.io安装失败,需要更新nodejs,npm版本 (更新前nodejs版本为4.2.6,npm版本为3.5.2)
更新nodejs到最新版本
npm install -g n n stable
更新后的nodejs在/usr/local/bin/node路径下需要通过MV指令移到/usr/bin/node路径下,替换原有的nodejs
mv /usr/local/bin/node /usr/bin/node
更新npm
curl -qL https://www.npmjs.com/install.sh | sh
更新完后执行
npm install socket.io
2.2代码实现
新建webserver目录并进入
mkdir webserver
在webserver目录下新建server.js
vi server.js
server.js文件中实现信令服务代码👇
'use strict' //导入需要使用的相关库 var http = require('http'); var https = require('https'); var fs = require('fs'); //serve-index var serveIndex = require('serve-index'); //express var express = require('express'); //socket.is var socketIo = require('socket.io'); //控制房间内用户个数 var USERCOUNT = 3; var app = express(); //顺序不能换 app.use(serveIndex('./public')); app.use(express.static('./public')); //加载本地路径下的ssl证书,专用于https, 没相关的域名以及证书,https将无法访问,有证书在webserver路径下新建cert目录,将证书拷入 var options = { key : fs.readFileSync('./cert/XXXXXXXX.cn.key'), cert : fs.readFileSync('./cert/XXXXXXXX.cn_bundle.pem') } //https_server 有证书就直接拷贝到cert路径下,在填入options中,没有就填null,https服务将无法访问 var https_server = https.createServer(null, app); //http_server var http_server = http.createServer(app); //bind socket.io with https_server var io = socketIo.listen(https_server); var sockio = socketIo.listen(http_server); //connection io.sockets.on('connection', (socket)=>{ socket.on('message', (room, data)=>{ socket.to(room).emit('message', room, data)//房间内所有人,除自己外,转发消息 }); socket.on('join', (room)=> {