Coder Social home page Coder Social logo

venus's Introduction

Venus

曾经我尝试做一个类似钉钉的开源产品。但是在找投资的时候,被告知类似的产品很多,产品并没有太多的意义。所以它在硬盘里又躺了快1年吧,最后我想还是放出来吧。

这是一款IM 产品,它以网页版的形式提供服务,支持手机端 PC端。它的功能包括 直接语音留言, 视频聊天,音频聊天,文字聊天,加好友等基本功能。没错,是利用网页直接进行视频聊天,语音聊天。在webrtc 如此使用广泛的情况下,做到这点很容易。

说说效果,在局域网里,比如在公司内部,我觉得你可以获得不亚于QQ 微信的使用体验。视频聊天都会非常正常,效果也不错。如果是互联网上,你文字和语音留言都不成问题,如果要视频,你需要专门提供一个stun服务器才有可能。stun的速度决定了你的效果。坦白地说,利用网页形式 直接进行视频聊天的条件并不成熟。但是5G时代,我相信这样的应用会更加容易实现

我搭建了一个演示网站,可以直接使用

https://www.meetyoucn.com

网站首页

效果大概这样!

Watch the video](http://www.iqiyi.com/w_19s8wf4dp5.html)

部署

  1. 如果 我在Internet 上部署,我需要做什么?

    首先你需要准备SSL证书。然后将证书分别改名为cert.pem 和 key.pem。覆盖项目里原有的证书。

    其次,你需要安装一个redis 服务器作为数据库。

    下载完源码: 在本地看大概这样

    Image text

    代码的位置在 /webroot/html/js/domain.js

    修改代码里的配置

    修改代码

    然后分别重新启动 程序即可。 注意 启动离线语音消息服务器的时候,需要 修改域名部分。

    启动的样子大概这样,

    启动网站

    运行网站

    启动 信令服务器

    运行信令

    启动IM服务器 这个需要指定redis服务器的地址

    运行IM

    启动离线语音消息服务器, 注意 这个需要指定完整的域名

    运行离线语言

    ​ 比如你的域名是 www.aaa.com 那么你启动离线语音消息服务器的命令就是

    ./upload -hostname=https://www.aaa.com

    注意必须是https://www.aaa.com 不是http://www.aaa.com

    注意 在Internet 上进行视频通信,需要安装stun,否则视频大概率是会失败的。

    比如你和对方在不同地方使用手机,服务器在Internet上,直接文字聊天,语音留言都没有问题,但是你们直接视频聊天大概率会失败。

    如果你和对方在同一局域网内,使用的服务器在Internet上,那么无论文字聊天,语音留言,直接视频是没有问题的。

  2. 如果我有自己的域名和证书, 我想在局域网里部署,我需要做什么?

    同Internet 部署,没有任何区别

  3. 如果你没有自己域名和证书,但是也想试试局域网部署。

    首先,确认你会安装服务器程序的IP, 如果 它们的Ip 是如下IP 里的一个,那么你可以用这个程序直接安装。

    Image text

​ 比如我想安装到的服务地址是 192.168.0.1 那么我可以用www01.meetyoucn.com 作为你的局域网里的域名。

​ 第一步 修改源码

​ 代码的位置在 /webroot/html/js/domain.js

修改代码里的配置

修改代码

​ 将域名修改成 www01.meetyoucn.com

然后分别重新启动 程序即可。 注意 启动离线语音消息服务器的时候,需要 修改域名部分。

启动的样子大概这样,

启动网站

运行网站

启动 语音聊天的信令服务器

运行信令

启动IM服务器 这个需要指定redis服务器的地址

运行IM

启动离线语音消息服务器, 注意 这个需要指定完整的域名

启动命令将改成 ./upload -hostname=https://www01.meetyoucn.com

运行离线语音

然后你使用 电脑 手机 ipad 打开 https://www01.meetyoucn.com 就可以注册,运行产品了。

浏览器版本要求

文字聊天 视频聊天 操作系统
PC 所有浏览器 Firefox, Chrome 无要求
Ipad/Iphone 所有浏览器 Safari 12.0
Android 所有浏览器 Chrome 无要求

服务器一共有5个。我发现虽然开源过代码,但是我发现大家并没什么兴趣,看来一个可用的产品才是最重要了。

  • 第一个 是 网页部分,这个部分是基于一个Layim的产品构建的。我已经购买了源码,你可以放心在上面继续开源使用。
  • 第二个 是一个Web服务器, 这个你完全可以用一个nginx服务代理。
  • 第三个 是语音留言服务器, 当你进行语音留言的时候,它会帮你将数据存储在web服务器上。
  • 第四个 是信令服务器, 主要用于视频聊天时管理双方的信令交互。
  • 第五个 是IM服务器,主要负责好友关系处理,聊天这样的服务。

如何使用docker 运行?

docker 的使用很简单。 使用 docker push xiaojiaqi/venus:0.1.0 下载镜像!

https://cloud.docker.com/repository/registry-1.docker.io/xiaojiaqi/venus

3 种情况

第一种, 我就是用镜像测试一下 首先,假设你没有域名,那么你需要找一个 上图里的 ip,作为你的服务器。 比如你本地服务器 ip 是 192.168.2.2 那么 www22.meetyoucn.com 就是你可以用的域名

运行一下命令 就 ok 了 sudo docker run --env WEBHOST=www22.meetyoucn.com -p 80:80 -p 443:443 -p 8888:8888 -p 8090:8090 -p 8091:8091 -d xiaojiaqi/venus:0.1.0 这种玩法的缺点在于,容器重启 资料就没了。

第二种情况, 我本地有一个 redis 服务器,我想把数据保留下来 假设我的 redis 是 192.168.1.1 我的本地服务器还是 192.168.2.2, 那么域名就仍然是 www22.meetyoucn.com

运行以下命令 sudo docker run --env WEBHOST=www22.meetyoucn.com --env REDIS=192.168.1.1:6379 -p 80:80 -p 443:443 -p 8888:8888 -p 8090:8090 -p 8091:8091 -d xiaojiaqi/venus:0.1.0

第三种情况, 我有一个自己的证书, 我想用自己的域名 那么你需要把 cert.pem key.pem 两个挂载进系统

差不多就是这样

sudo docker run -v /local/cert.pem:/app/cert.pem -v /local/key.pem:/app/key.pem --env WEBHOST=www.myhost.com --env REDIS=192.168.2.30:6379 -p 80:80 -p 443:443 -p 8888:8888 -p 8090:8090 -p 8091:8091 -d xiaojiaqi/venus:0.1.0

源码的话,看大家反应吧,如果星多就逐步发布吧。

有任何问题 都可以邮件 xiaojiaqi.cn#gmail.com

venus's People

Contributors

xiaojiaqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

venus's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.