基于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环境(node版本推荐6.x以上的版本,如果使用4.x版本,此项目启动是会报错【EMPTY_BUFFER: Buffer.alloc(0)】,可以使用“nvm”安装需要的node版本)
  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库的调整

© 2018, 李德涛博客. 版权所有.

发表评论

电子邮件地址不会被公开。 必填项已用*标注