搭建了一个基于 WebRTC 技术的语音聊天室。测试了下和一个沙特阿拉伯人聊了一个小时,出奇的稳定,语音质量也很好,和国内的人聊也都很稳定,不比 zoom 与微信差。
比 App 的优势好在无需注册,分享房间链接,用浏览器打开即可聊天,用完一切就消失了,隐私性好。
测试地址: https://free4.chat/
开源仓库地址: https://github.com/madawei2699/free4chat
此网站是后端基于 kraken,它本身又基于 Go 语言中 pion 这个 WebRTC 的库,前端基于 Mornin,我把搭建的操作流程都放入了项目中的 infra 目录中,如果你要自己搭建的话,可以参考。
不过目前的功能只是我想要的一部分,所以后续可能会添加一些功能,目前想到的有这些:
如果你对 webRTC, peer-to-peer(P2P), real-time collaboration(CRDT), distributed system 或 robot design 感兴趣,欢迎关注或参与进来。
说效果惊人是,测试了一天,语音通话质量出奇的好,因为一个房间大多不到十个人,语音通话质量不仅稳定而且不比 zoom 、腾讯会议、微信等差(个人及测试的人感觉)。
另外一个有意思的是服务器,后端服务包括 coturn 都部署到一台 1 核、1G 内存的 AWS 服务器上。目前测试的效果是服务器毫无压力,甚至可以降级到 512M 内存的机器。
最终昨天大概有近一千人访问,创建了上千个房间,服务器始终负载没怎么变化,可能这就是 P2P 的优势吧。
1 mywaiting 9 小时 57 分钟前这货是不是双方建立连接后,就直接点对点通信了?不用通过服务器中转负载肯定低 |
2 cat9life 9 小时 53 分钟前这个牛 x 能做 ppt 演示吗 |
3 bmpidev2019 9 小时 51 分钟前@mywaiting 服务器是 SFU 的,并且 coturn 也开启了 turn ,在糟糕的情况下,所有 peer 都需要服务器中转才行,所以也不能直接说全部就直连了 |
6 santom 9 小时 45 分钟前之前 RTC 做过一阵大直播,这个延迟怎么样? |
7 tanhui2333 9 小时 41 分钟前以前做过基于 kurento 的,确实还行。不过不是音视频流媒体行业的,深度搞起来有点吃力。 |
9 keith1126 9 小时 37 分钟前> 不比 zoom 与微信差 前半句应该有点夸张了……只能说网络状况良好的情况下,怎么实现都差不多。 |
10 5sheep 9 小时 27 分钟前这个 WebRTC 多年前就已经有很成熟的开源应用了。 楼主再次从头开始,是啥想法呢? 练技术? |
11 bmpidev2019 9 小时 26 分钟前 via iPhone 1@keith1126 和沙特阿拉伯那边聊了一小时多,其中也有国内深圳、珠海、云南、陕西的人进来,我持续测试了一天,因为我们工作也在用 zoom (在家办公,一挂一整天),我对比在同样的网络环境下,感觉就是比 zoom 要好一些,当然环境的问题很复杂,但测试的感受就是这样的 |
12 lloovve 9 小时 25 分钟前 via iPhone一对一能理解点对点通信,多个人的房间怎么点对点? |
13 bmpidev2019 9 小时 23 分钟前 via iPhone@5sheep 通过一个产品去持续练技术,就当技术实验田吧,当然 webRTC 也一直在发展,不能说已经成熟到不变的地步了,还有其他技术可以玩,甚至可以在技术上找一些好的场景,比如在线会议已经很成熟了,那这个产品只能走极端,比如在语音中找一些玩法、场景,找需求点(比如语言学习等场景),这些都是一些可尝试的点,并不是重复造轮子 |
15 okakuyang 8 小时 56 分钟前这个肯定都是全部流量转发的,就国内网络环境不可能穿透成功的。 |
16 bmpidev2019 8 小时 51 分钟前 via iPhone@okakuyang 如果是全部中转了,那按目前的采样率数据还挺小的,实时在线 20 多人,服务器网络流量每秒才 30-40KB (上行与下行都差不多这个范围) |
17 LiuJiang 8 小时 48 分钟前webRTC 在国内安卓机上有很大的兼容性问题 |
18 legendORld 8 小时 21 分钟前刚才和同事试了一下,效果还行,就是不知道长时间会不会发热 |
19 Zeonjl 8 小时 7 分钟前 via iPhone国内直连就是牛! |
20 cweijan 8 小时 4 分钟前去年搭建开源平台 jitsimeet, 和你这个一样, 不过它支持视频, 但是安装太繁琐了, 你这个看起来很轻量 |
24 Borden 6 小时 13 分钟前这种东西,技术问题都不是问题~ |
25 Funnyang 6 小时 11 分钟前 via iPhone可以支持视频通话么,微信会发热 |
27 avastms 6 小时 4 分钟前语音的话确实,毕竟以前像 erlang 这种,目标都是语音业务,恨不得一台机器管一个市 |
28 ferock 5 小时 32 分钟前 via Android支持 docker 部署吗 |
29 XTTX 5 小时 24 分钟前国内和国内两点中专延迟高吗? 声网这种语音 api, 更大的价值还在让云服务器更靠近终端用户,实现稳定和低延迟。不过他们的收费也是高得离谱。 |
30 XTTX 5 小时 16 分钟前还有,如果要加入更完整的 IM 功能,我建议是扒一扒类似 mattermost 的开源前端, 类似 slack 的功能它都有, 不过就是要用到 react 和 redux. |
31 XTTX 5 小时 13 分钟前后台支持 singaling 和中转两种模式吗? |
32 XTTX 5 小时 7 分钟前国内的话,STUN 服务器怎么解决? |
33 Biwood 4 小时 55 分钟前流量还是得转发吧,能做到 P2P 直连吗 |
34 bmpidev2019 3 小时 24 分钟前 via iPhone 1@Funnyang 不支持,主要是语音,未来可能加文字,全功能的应用用 App 就好了,这个工具主要是简单 |
35 XTTX 3 小时 1 分钟前@bmpidev2019 #34 语音的话可以参考一下声网,即构这种实时语音的 sdk 提供商。 收费帮他们搭建服务,或者提供便宜的计时收费的语音包 |
38 darkengine 2 小时 37 分钟前https://free4.chat/StoneX 有人来聊吗 |
39 HXM 2 小时 2 分钟前和在 LA 的同学试了一下,效果确实不错,好奇 SFU 服务器搭建在哪里? 另外要是支持语音降噪之类的功能就更好了 现在可以明显听到对方敲键盘的声音 |
40 Chism 1 小时 41 分钟前直接搭建一个全球陌生人随机视频可行? |
41 bmpidev2019 1 小时 11 分钟前 via iPhone@qq316107934 ipv6 应该不支持吧,不知道底层的 pion 是否支持 |