V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ellermister
V2EX  ›  分享创造

最近学习 webrtc 搞了一个 P2P 聊天室,支持语音视频通话、分享屏幕、传送文字文件

  •  
  •   ellermister · 2023-01-06 21:39:49 +08:00 · 3142 次点击
    这是一个创建于 691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    契机

    是有时候需要和朋友连麦打游戏,但往往有些朋友不能够连接 discord 。

    之前站内有人发过了自己实现的 webrtc 语音通话, 有使用过, 不过和朋友连接时已经连不上了,似乎已经不再维护了。

    https://www.v2ex.com/t/828646

    自己开始尝试研究搞一个简陋的 P2P 语音网页,从纯测试连接 demo 到用 vue 实现了个完整功能的简陋 demo.

    功能支持

    • 语音视频通话
    • 文字、文件传输
    • 分享屏幕
    • 多人聊天室 (Mesh 结构)

    说到底就是利用 浏览器 JS API 建立一个 P2P 连接, 在这个连接上附加一些 [语音视频流] 传输,再利用 [数据通道] 实现文件的传输。

    因为数据直接传输不经过服务器, 所以如果两人网络状况较好体验佳. 局域网也可以使用。

    不过也有大概率连接不上,取决于网络运营商和你设备的 nat 穿透情况

    比起语音视频功能,文件传输对我还是很有用,比如在帮助朋友 [远程桌面] 解决一些问题是,他的电脑又没有相关软件进行排查,糟糕的网盘和中转环境经常很难将文件传输到达, todesk 前不久又限制付费用户传输文件了, 这个就很好用。

    到目前为止

    东西倒是写完了, 以上的个人需求, 没一个用上,有了就备不时之需吧。

    Github

    有需要的朋友自己玩玩

    https://github.com/ellermister/ishoni

    预览地址

    https://p2p.mjj.ee

    13 条回复    2023-01-08 18:31:33 +08:00
    R5iCXvUx
        1
    R5iCXvUx  
       2023-01-06 21:55:39 +08:00
    沙发 支持楼主 技术贴顶顶
    shadoworld
        2
    shadoworld  
       2023-01-06 23:08:59 +08:00
    支持!
    Chad0000
        3
    Chad0000  
       2023-01-07 05:28:43 +08:00 via iPhone
    谢谢分享。
    suke119
        4
    suke119  
       2023-01-07 18:09:22 +08:00 via iPhone
    我在掘金出了 WebRTC 系列的小册🤓🤓🤓
    suyuyu
        5
    suyuyu  
       2023-01-07 18:58:12 +08:00
    是隔壁的 mjj 吗
    moonrailgun
        6
    moonrailgun  
       2023-01-07 21:12:02 +08:00
    我正在基于 mediasoup 实现多人会议,共同学习啊
    https://github.com/msgbyte/tailchat-meeting
    ellermister
        7
    ellermister  
    OP
       2023-01-07 22:30:28 +08:00
    @suke119 点你资料看了下,是付费的🙃


    @suyuyu 算吧


    @moonrailgun
    你这个很全面啊,不过默认的黑色背影图像,吓死人
    miniblink
        8
    miniblink  
       2023-01-07 22:34:01 +08:00
    看起来挺不错的
    meathill
        9
    meathill  
       2023-01-07 23:05:02 +08:00
    感谢分享
    HungryOrangeCat
        10
    HungryOrangeCat  
       2023-01-08 09:55:49 +08:00
    teamspeak 和这个的区别是什么呢
    suke119
        11
    suke119  
       2023-01-08 10:57:25 +08:00 via iPhone
    @ellermister 是的收费的 小册子一杯咖啡的钱性价比还是很高的 毕竟有 mesh sfu mcu 三种架构的系统性教程 这么全的教程基本在国内没得
    ellermister
        12
    ellermister  
    OP
       2023-01-08 15:02:43 +08:00
    @HungryOrangeCat 我这个肯定没有人家专业的全面,你如果初次接触这个,可以用来学习它的交互流程,以此构建自己的应用程序。
    st2udio
        13
    st2udio  
       2023-01-08 18:31:33 +08:00
    之前做了一个终端的 webrtc 聊天工具,golang 写的 https://github.com/szpnygo/gtc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.