分享个人做的聊天网站(react + node), 支持p2p视频聊天, p2p文件传输等
发布于 3 年前 作者 edwardwohaijun 3895 次浏览 来自 分享

http://worksphere.cn/home (暂时只支持chrome). 功能如下:

  • 文字聊天(可以内嵌图片, mp3, 短视频mp4), server端暂时没有保存聊天记录
  • p2p视频聊天
  • p2p文件传输(基于google chrome的filesystem api, 只要硬盘足够大, 即使传输10G文件也可以)
  • 简单的朋友圈分享(同样可以上传图片/mp3/mp4)

所用的技术: 前端:

  • react全家桶(react, redux, immutable)
  • socket.io client(实现文字聊天)
  • webrtc(实现p2p视频聊天, p2p文件传输)
  • ui框架: material ui

后端:

  • node + express
  • socket.io server
  • nginx as reverse proxy server
  • Postgresql + mongodb

其它第三方服务:

  • 七牛云存储(存放聊天/朋友圈的多媒体文件)
  • sendcloud mail service(暂时只用于: 忘记密码后的邮件提醒)

注意事项:

  • 暂时只支持chrome, 比较耗内存(以后慢慢优化吧)
  • 视频聊天时, 可能会有回音, 噪音, 使用前, 先将电脑音量调低, 最好使用耳麦
  • 本人时间/精力有限, 尚未完全测试, 可能随时发生server死机
  • 请不要在一个浏览器中用2个身份在2个tab中打开, 会有冲突
  • 七牛有10G的免费存储空间, 因此, 我会定期清理/删除一些旧文件, 这会导致你上传的文件消失.
  • 聊天的内容server端没有保留, 因此你在offline期间发给你的msg是收不到的

注册后, 想要加我为好友, 则: 在加好友的dialog中搜索"华仔"即可.

11 回复

webrtc 要设置连接参数吗?

webrtc 用的是: https://github.com/feross/simple-peer 这个第三方的库, 基本都是默认参数. 还需要把signaling data传给peer双方, 我是通过server端的socket.io server传的.

干货。利用了技术点

使用到了 webrtc,值得研究。

感谢各位朋友近期登录小站, 并提出了反馈和意见. 也有朋友反应: 视频聊天, 文件传输只能在局域网中, 在Internet上无法建立连接. 由于P2P连接并非能保证完全成功. 为此, 我还特意装了一台STUN server用来翻越防火墙/NAT, 希望能提高P2P连接成功率. 也请, 各位朋友多多使用, 测试.

由于P2P视频/文件传输, 其数据是不通过server的, 而且webRTC自带了许多加密协议, 确保了语音/视频/数据传输的安全性. 因此, 不用太担心被第三方截获到.

此外, 还做了一个小改动: 当你进入临时聊天室后, 以前只能邀请一位好友进入私聊, 现在可以邀请9个好友, 而且还有一个私人组供你们10人一起群聊. 以上这一切功能, 都无需注册, 也可以使用

回到顶部