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

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

目录



前言


搭建前端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总结:由于视频聊天涉及隐私问题,自己试着研究一下还可以,所以就不放案例试用链接,之前的视频聊天案例

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
8月前
|
弹性计算 安全 网络安全
搭建简易多人在线视频会议系统
本场景将介绍使用音视频服务单间一个简易的视频会议室。
219 0
|
10月前
|
安全
语音软件源码开发搭建,好友管理功能剖析
我们就成功实现了语音软件源码好友管理功能,这一功能对于语音软件源码平台是非常重要,语音软件源码好友管理功能可以为我们的社交增添一份坚实的力量。
语音软件源码开发搭建,好友管理功能剖析
|
8月前
|
存储 边缘计算 负载均衡
直播APP源码搭建:核心的服务器系统
这就是直播APP源码平台的服务器系统,拥有着管理用户、数据、直播流质量与带宽等优秀的能力,是直播APP源码平台正常运行提供服务和用户优质体验的重要支撑,服务器系统可以说是直播APP源码平台的重要核心。
直播APP源码搭建:核心的服务器系统
|
10月前
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
|
10月前
|
SQL 安全 网络安全
直播软件源码开发搭建提高安全性方案
直播软件源码平台的防火墙功能是极为重要,且不可或缺的,它的加入有效提高了直播软件源码平台的安全性,保护了用户的信息,为用户构建一个绿色安全的直播软件平台。
直播软件源码开发搭建提高安全性方案
|
10月前
|
安全
视频交友源码开发搭建平台用户资料功能:小功能有大用处!
视频交友源码平台用户资料功能不仅仅对于视频交友平台是重要的,它对于很多源码搭建的平台都是非常重要的,这样的源码功能还有很多,我会为大家讲解,喜欢的可以留个关注来问我。
视频交友源码开发搭建平台用户资料功能:小功能有大用处!
|
12月前
|
监控 语音技术 数据安全/隐私保护
阿里的远程监考解决方案
阿里的远程监考解决方案
201 1
|
数据可视化
推荐五款电商常用的线上工具,不用下载,马上收藏使用
不少做电商的小伙伴,私信我说想要一些对电商有帮助的工具,经过我加班加点地收集工作,总算初具成果了。
144 0
推荐五款电商常用的线上工具,不用下载,马上收藏使用
|
运维 Linux 数据安全/隐私保护
运维的新宠-远程利器Todesk
运维的新宠-远程利器Todesk
运维的新宠-远程利器Todesk
|
搜索推荐 人机交互 UED
在搭建直播平台时要以用户为中心,解决直播系统“通病”
如何理解在搭建直播平台时要以用户为中心呢,想要做好,就应主动站在用户的角度中来分析,花更多的时间来体验中平台,例如当你想要修改直播系统中的某类功能时,你可以去市场中倾听用户的想法意见,倾听用户的声音。不同的角度往往可以发现有不同的问题,参考用户的意见或建议来进行修改。  
在搭建直播平台时要以用户为中心,解决直播系统“通病”