学习 WebRTC 需要一个基础的服务器,使用 Node.js 搭建一个基础的服务器。

服务器可用的有很多:Nginx、Apache、Node.js、Tomcat 等。

环境:Centos7 64

安装 Node.js

一般通过包管理器安装是比较方便的,如果包管理器源上没有相关软件可选择源码编译安装。

Centos 通过 yum 安装:

1
$ sudo yum install nodejs

源码安装参见官网和百度。

HTTPS

HTTPS = HTTP + TLS/SSL。

WebRTC 使用需要 HTTPS(按照网上的说法,没有只能在 localhost 跑)。

购买一个域名并备案(我借的学长的二级域名,解析到我的服务器上了)。

在域名提供商那里申请 SSL 证书,下载到服务器上。

CODE

需要用到的包 http、https、fs、express、serve-index。

后两个是需要 npm install 的,注意安装时如果想安装在全局需要加 -g 选项。

express 模块是 Node.js 中写 Web 服务器需要的一个模块。

serve-inde 模块是将整个目录发布出来用的,需要指定发布目录,代码中指定目录为 ./public

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';

let http = require('http');
let https = require('https');
let fs = require('fs');

let express = require('express');
let serveIndex = require('serve-index');


let app = express();
app.use(serveIndex('./public'));
app.use(express.static('./public'));

// http server
let http_server = http.createServer(app);
http_server.listen(8087, '0.0.0.0');


// https server
let options = { // 这里配置 SSL 证书地址
key: fs.readFileSync('./cret/3162249_ahoj.luoshaoqi.cn.key'),
cert: fs.readFileSync('./cret/3162249_ahoj.luoshaoqi.cn.pem')
};
let https_server = https.createServer(options, app);
https_server.listen(443, '0.0.0.0');

启动服务

1
2
3
node app.js
nohup node app.js # 可以去了解一下 nohup 和 & 的区别
foever start app.js # 需要 npm install forever -g

EOF