辛宝Otto

辛宝Otto 的玄酒清谈

北漂前端程序员儿 / 探索新事物 / Web Worker 主播之一/内向话痨
xiaoyuzhou
email

11-速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案

速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案
速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案
辛宝Otto

收听方式#

内容#

本期是速通 JSJ  588 播客 《How to Build Peer-to-Peer Mobile and Desktop Apps with Socket Supply

嘉宾是:你不知道的 js 作者,目前在 Socket Supply

目前在 advocating for the open web platform 倡导开放网络平台

介绍的这个 Socket Supply 的工具,希望一套代码,支持不同的平台 one code base, solve the problem with kind of the multi-platform.

web 技术构建桌面、移动端应用,从十几年前开始看,已经有了一些玩家:

  • PhoneGap -> apache cordova
  • nativescript / ionic / react native / tauri / electron

都在试图创建 runtime 包装 web 应用,来实现 app 在不同的原生平台处理。Socket Supply 也加入了其中,提供了开源的运行时通过 open runtime , warps around a web app like a  pwa 从而实现上架各平台。

Capacitor 建立在 Cordova 上,这是一个 15 + 年前的代码库,专为移动设备编写,尽管它确实将 Electron 用于桌面,但这正在采购整个第二个项目,并且两者结合起来会产生大量的复杂性。Socket 是针对移动、桌面、无头和 Web 从头开始构建的,发明了尽可能少的新 API。更重要的是,Socket 专注于采用 CSP 等 Web 标准来沙盒原生 API,并实现点对点等现代网络。

本产品的特点:

  • 嫌弃人家老,有历史包袱,说自己新。这是特点的一部分,另一方面,网络部分有创新,独一无二的,是 P2P 网络,不鼓励和前端分开的独立后端。
  • 不支持分离的后端进程,就放到 web view 中就完事,所以体积非常小,比 electron /tauri 要小的多。
  • 这个运行时有完整的的文件访问、蓝牙、网络等。不能在浏览器里完整使用网络,因为 api 不允许
  • 网络协议这里,设计了完整的 serverless p2p 协议,真正的无服务器,由 socket 交流,而不需要服务端支持。
  • 做 p2p 的有很多,他们搞了一个协议,真正实现 0 服务器指令。发现网络通过 udp

为啥是一个 game changer?因为现在的应用都需要后端,需要数据库、存储等。

商业模式介绍。作为基建不需要付费,如果愿意支付分析工具的专业知识,客户分析、性能分析等。为更专业的技能付费,更方便的技能,比如一键部署到商店等。

目标客户是谁,所有公司,大公司,小公司?

都可以用,可以同时使用。全面上云,支付的费用很高。增加点新的支出,同时运行两种架构,是可行的,做 ab 测试,最后结果可能是大幅减少的一些云服务。

从 s3/db/function 等迁移到 p2p ,细节很多。从实际上看,从云端转为 p2p 需要更长的时间来迁移,也需要 a/b 并行来操作。

I think this is way beyond the depth of what we should get to on ths podcast. 用了播客所不能承载的技术细节,听不懂。

使用到了 Web3 技术吗?

没有使用 web3 的技术,更像是 web3 技术之前的方案,或者叫 web 2.5

用到了 webscoket/web rtc 是吧?

没有。web stream /web socket /webrtc 不能满足他们建立 p2p 的要求,所以从基础上就是完全使用的 udp 的方案。

ipv6 是我们的救世主吗?

答案是不行, ipv6 的 nat 遍历很糟糕,至少是基于 udp 的 p2p

他们对 local first 有极大的热情,组建了一个社区。localfirstweb.dev

Q: GPT 请告诉我,基于 udp 的 p2p 网络,大概什么样,从技术和使用场景上做一个解释。

基于 UDP 的 P2P 网络是一种点对点(Peer-to-Peer)网络架构,其中通信使用 UDP 协议进行数据传输。与传统的基于 TCP 的 P2P 网络相比,UDP 更适合实时性要求高、带宽要求低的应用场景。

技术上,基于 UDP 的 P2P 网络通常采用 NAT 穿越技术,以克服 NAT(网络地址转换)对 P2P 通信的限制。NAT 穿越技术可以通过使用中继服务器或者使用 UDP 打洞等方式,使得位于不同私有网络中的节点能够直接通信,而无需通过公网 IP 地址。

使用场景上,基于 UDP 的 P2P 网络适用于以下情况:

  • 实时通信:UDP 协议具有低延迟和高实时性的特点,适用于实时音视频通话、在线游戏等需要快速传输数据的应用场景。
  • 大规模文件共享:P2P 网络可以将文件分割成小块,并通过多个节点同时上传和下载,提高文件传输速度和可靠性。
  • 媒体流传输:基于 UDP 的 P2P 网络可以用于流媒体传输,如直播、视频点播等,通过多个节点同时提供媒体数据,减轻服务器负载。
  • 去中心化应用:基于 UDP 的 P2P 网络可以用于构建去中心化的应用,如区块链、文件存储等,通过节点之间的直接通信实现数据共享和交换。

需要注意的是,基于 UDP 的 P2P 网络相对于基于 TCP 的 P2P 网络来说,由于 UDP 协议的特性,可能会面临一些挑战,如数据包丢失、乱序等问题,因此在设计和实现时需要考虑数据可靠性和传输效率的平衡。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。