搭建一个线上版远程视频聊天

本文涉及的产品
.cn 域名,1个 12个月
简介: 搭建一个线上版远程视频聊天

目录



前言


搭建前端https访问:


配置后端https请求:


前言

在另一篇博客中已经实现了远程视频聊天,然而这种方式只能运行在本地或者https服务下,因为navigator.mediaDevices.getUserMedia需要运行在安全模式下,所以这篇文章将对视频聊天做一个改进,达到真正的远程聊天功能

之前的案例:使用JS+socket.io+WebRTC+nodejs+express搭建一个简易版远程视频聊天


搭建前端https访问:

搭建https的第一步得有一个服务器,相关的配置说明在我另一篇文章有提到

案例:本地项目上线流程

然后,购买域名并备案,第一次要久一点,大概20天左右

在域名界面进行域名解析和ssl证书下载(后续配置https)

image.png

将域名绑定服务器外网ip


image.png

域名界面点进管理,购买免费证书并下载,这里用的是Nginx


image.pngimage.png

把下载的key和pem放在Nginx根目录下,部署视频聊天前端文件夹Video至根目录,打开conf文件夹下的nginx.conf文件并编辑

image.png

在nginx.conf文件中添加代码,代理Video文件夹下的video.html文件至12345端口


# Video
    server {
        listen       12345;
        server_name  localhost;
        location / {
            root   Video;
            index  video.html;
        }
    }

在nginx.conf文件中添加以下代码配置https证书,将上面的代理网站部署https证书


# HTTPS server
    #
    server {
       listen       443  ssl;
       server_name  localhost;
       ssl_certificate      ../cert.pem;
       ssl_certificate_key  ../cert.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location  /Video/{
           proxy_pass   http://127.0.0.1:12345/;
        }
    }


最后通过访问https://域名/Video/的方式打开前端页面


配置后端https请求:

将之前下载的证书文件复制到server目录,或者其他目录,server能访问到即可



打开server修改代码,之前我们的写法是


const express = require("express");
const app = express();
const server = require("http").Server(app);
const io = require("socket.io")(server);

现在得做个小修改,其他代码不动

const express = require('express')
const app = express();
const fs = require('fs');
const options = {//读取证书文件
  key: fs.readFileSync('cert.key'),
  cert: fs.readFileSync('cert.pem')
};
const server = require('https').createServer(options,app);
const io = require('socket.io')(server);

后端修改成https的目的是因为前端部分放在https服务器上,而后端用http请求方式,浏览器会报http的请求错误


image.png

然后把请求地址改为https即可访问


最后我们看看效果

由于电脑上的摄像头无法被两个页面调用,所以我用手机和电脑进行远程视频

电脑端的录屏

image.png

手机端录屏

image.png总结:由于视频聊天涉及隐私问题,自己试着研究一下还可以,所以就不放案例试用链接,之前的视频聊天案例

相关文章
语音软件源码开发搭建,好友管理功能剖析
我们就成功实现了语音软件源码好友管理功能,这一功能对于语音软件源码平台是非常重要,语音软件源码好友管理功能可以为我们的社交增添一份坚实的力量。
语音软件源码开发搭建,好友管理功能剖析
|
运维 监控 安全
软件源码开发,网络中的“摄像头”:运维监控系统
总之,监控运维系统在软件源码开发平台中有着不可或缺的作用,通过以上分析,可以看出监控运维系统不只是监控着服务器、数据库、操作系统等,还可以为软件源码开发平台运维团队提供资源管理、容量规划、日志与事件记录等作用,确保着软件源码开发平台的系统和服务的正常运行。
软件源码开发,网络中的“摄像头”:运维监控系统
|
SQL 安全 网络安全
直播软件源码开发搭建提高安全性方案
直播软件源码平台的防火墙功能是极为重要,且不可或缺的,它的加入有效提高了直播软件源码平台的安全性,保护了用户的信息,为用户构建一个绿色安全的直播软件平台。
直播软件源码开发搭建提高安全性方案
|
数据采集 监控 数据可视化
「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统
本文以 TDengine Cloud 为例,介绍如何使用 PLC + OPC + TDengine 快速搭建烟草生产监测系统。
146 0
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
|
前端开发 测试技术 数据库
互助盘系统(海外版)点对点交易模式开发搭建部署
互助盘系统(海外版)点对点交易模式开发搭建部署
|
监控 语音技术 数据安全/隐私保护
阿里的远程监考解决方案
阿里的远程监考解决方案
319 1
|
存储 开发工具 文件存储
打造一款支持线上抓 systrace 的框架
打造一款支持线上抓 systrace 的框架
453 0
|
消息中间件 弹性计算 Java
阿里云云端服务器使用感想
速度很快,高效便捷,给我们学生带来了很大的帮助
133 0
|
开发者 UED
游戏陪玩源码开发,提升推送系统可用性的三种方式
游戏陪玩源码开发,提升推送系统可用性的三种方式