搭建了一个基于 WebRTC 技术的语音聊天室。测试了下和一个沙特阿拉伯人聊了一个小时,出奇的稳定,语音质量也很好,和国内的人聊也都很稳定,不比 zoom 与微信差。
比 App 的优势好在无需注册,分享房间链接,用浏览器打开即可聊天,用完一切就消失了,隐私性好。
测试地址: https://free4.chat/
开源仓库地址: https://github.com/madawei2699/free4chat
此网站是后端基于 kraken,它本身又基于 Go 语言中 pion 这个 WebRTC 的库,前端基于 Mornin,我把搭建的操作流程都放入了项目中的 infra 目录中,如果你要自己搭建的话,可以参考。
不过目前的功能只是我想要的一部分,所以后续可能会添加一些功能,目前想到的有这些:
-
Room
- Text chat, can sent text or emoji
- Room permission setting, like public/private type setting
- Public rooms discovery, like hot room list or filter rooms by type/tag
-
User
- Robot user, like game robot who can play or facilitate game
- User real-time collaboration, like whiteboard
-
Infra
- Backend service cluster, auto scaling, load balancing, etc.
- Security enhancement, like coturn TLS setup, end-to-end encryption, etc.
如果你对 webRTC, peer-to-peer(P2P), real-time collaboration(CRDT), distributed system 或 robot design 感兴趣,欢迎关注或参与进来。
说效果惊人是,测试了一天,语音通话质量出奇的好,因为一个房间大多不到十个人,语音通话质量不仅稳定而且不比 zoom 、腾讯会议、微信等差(个人及测试的人感觉)。
另外一个有意思的是服务器,后端服务包括 coturn 都部署到一台 1 核、1G 内存的 AWS 服务器上。目前测试的效果是服务器毫无压力,甚至可以降级到 512M 内存的机器。
最终昨天大概有近一千人访问,创建了上千个房间,服务器始终负载没怎么变化,可能这就是 P2P 的优势吧。
