基于webrtc的一对一视频聊天(apprtc)

一、前言

项目作者:https://github.com/webrtc

成品项目:https://github.com/webrtc/apprtc

samples项目:https://github.com/webrtc/samples

搭建过程参考文章:http://www.cnblogs.com/hujihon/p/4991137.html

https://www.jianshu.com/p/c55ecf5a3fcf

说明

此项目为谷歌项目组的官方项目。apprtc为成品项目,可以编译后部署使用。samples项目为webrtc技术点的单独测试。

本文主要介绍apprtc项目的环境搭建与部署。其中“Collider”为服务端,使用GO语言编写;前端项目使用grunt(Nodejs)构建与编译;前端使用Python语言实现( Google App Engine SDK for Python); Google App Engine SDK for Python的环境搭建,需要服务器能够翻墙链接谷歌云服务器(参考文章【ssh+proxychains实现linux服务器的代理翻墙】)。

文章案例使用的服务器为阿里云linux服务,操作系统为ubuntu server 16。

二、获取项目源代码

1.登录服务器并进入指定目录:

通过ssh登录服务器

1.1.更新系统软件包:

sudo apt update
sudo apt dist-upgrade
sudo apt autoremove

1.2.进入当前用户的目录下:

cd (此案例为阿里云的ubuntu server 16,用户目录的绝对路径为"/root/")

2.从github上获取项目源代码:

sudo apt install git
git clone https://github.com/webrtc/apprtc.git

继续阅读基于webrtc的一对一视频聊天(apprtc)

Google App Engine SDK for Python的本地化安装

一、前言

官方文档:https://cloud.google.com/appengine/docs/standard/python/download

由于有些项目依赖于谷歌云服务,项目需要部署在谷歌云上或者把谷歌云环境部署到本地服务器上。

二、本地化安装

1.安装python 2.7

sudo apt install python-2.7 (谷歌SDK暂时不支持python 3)

2.初始化谷歌云SDK

参考原文:https://cloud.google.com/sdk/docs/#linux

2.1.查看python2的版本

python2 --version

2.2.下载谷歌云SDK

cd 
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-188.0.1-linux-x86_64.tar.gz (需要翻墙,或者本地下载后自行上传)

2.3.解压谷歌云SDK

tar -xzvf google-cloud-sdk-188.0.1-linux-x86_64.tar.gz

2.4.执行谷歌云SDK安装脚本

./google-cloud-sdk/install.sh

2.5.初始化谷歌云SDK

./google-cloud-sdk/bin/gcloud init
3.安装app引擎的python模块
gcloud components install app-engine-python
4.安装git客户端
sudo apt install git
5.安装app引擎python模块扩展
gcloud components install app-engine-python-extras

离线安装GO语言依赖库

一、前言

参考原文:http://blog.csdn.net/a55569769/article/details/46377267

项目源码地址:https://github.com/golang/net

目的

解决GO语言项目依赖模块离线安装的问题。

二、安装

1.1.在工作空间创建目标项目的文件夹结构

cd ~/goWorkspace (此示例的go项目工作空间为当前用户的goWorkspace)
mkdir -p src/golang.org/x/net/
cd src/golang.org/x/net/

1.2.获取依赖模块源代码

git clone https://github.com/golang/net.git

linux操作系统搭建GO语言运行环境

一、前言

参考地址:https://golang.org/doc/install

ubuntu server 16自带go语言安装包,如果已经安装但版本比较低,需要先卸载,然后重新安装。卸载方式:

sudo apt autoremove golang

或者

sudo apt autoremove golang-{version}(一般为1.6或者1.9)

二、软件安装与配置

linux版go下载地址:https://golang.org/dl/

根据自己的需要,或者要下载的文件地址,此文使用:https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz。

1.创建go的文件夹

cd /usr/local
mkdir /usr/local/go

2.下载go的文件夹并解压

cd
wget https://dl.google.com/go/go1.9.4.linux-amd64.tar.gz

(如果服务器无法翻墙,可以先在个人电脑,再上传;或者参考【ssh+proxychains实现linux服务器的代理翻墙】配置服务器翻墙)

tar -C /usr/local -xzf go1.9.4.linux-amd64.tar.gz

基于webrtc的多对多聊天(SkyRTC)

一、基本介绍

  1. 开源项目地址
    作者项目集合地址:https://github.com/LingyuCoder
    服务端项目地址:https://github.com/LingyuCoder/SkyRTC
    客户端项目地址:https://github.com/LingyuCoder/SkyRTC-client
    demo项目(本文中应用的)地址:https://github.com/LingyuCoder/SkyRTC-demo
  2. 项目技术特点
    这是一个使用SkyRTC和SkyRTC-client搭建浏览器中音频、视频、文字聊天室的Demo
  3. 前置条件
    参考【Nodejs开发环境与生产环境安装】安装nodejs;
    参考【基于coturn的webrtc iceserver搭建】自建iceserver服务;
    参考【通过apache2代理+Let’s Encrypt实现网站https与wss】配置网站的安全访问(浏览器有安全策略,除了127.0.0.1,其他需要配置SSL,页面才能调用本地摄像头与耳麦设备)。

二、开发配置

  1. 安装Node.js及npm环境
  2. 下载源码(https://github.com/LingyuCoder/SkyRTC-demo)到本地,并解压缩
  3. 移动到解压后的目录下
  4. 使用命令npm install安装所需要的库
  5. 运行命令node server.js
  6. 访问http://localhost:3000#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相通信
  7. 进行浏览器兼容的开发工作

##功能说明 支持划分房间的在线音频、视频、文字聊天,提供房间内文件共享功能

三、部署配置

  1. 安装Node.js及npm环境
  2. 上传修改后的项目代码到目标服务器(不要带node_modules)
  3. 移动到解压后的目录下
  4. 使用命令npm install安装所需要的库
  5. 运行命令node server.js,建议配合forever
  6. 通过apache配置https与wss代理
  7. 访问https://公网ip#roomName查看效果,其中roomName为进入的房间名,不同房间的用户无法互相通信

四、优缺点分析

1.优点

部署运行简单

2.缺点

项目长久不维护,浏览器兼容性差。需要进行客户端js库的调整