辛宝的玄酒清谈!
1418 words
7 minutes
11-速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案
2023-10-30
<audio src="ipfs://bafybeiaz6eodqio7tgxhvokbhtih7e6ivlbwras7odipeclrgvfb3rn47q" name="速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案" artist="辛宝Otto" cover="ipfs://bafkreigudhqviyiwl4tytbxh4d247dbz3s5gatdg2bxjpoouqiimwhekwu"></audio>

收听方式#

内容#

本期是速通 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 协议的特性,可能会面临一些挑战,如数据包丢失、乱序等问题,因此在设计和实现时需要考虑数据可靠性和传输效率的平衡。

11-速通 JSJ 588 介绍 Socket Supply 构建桌面、移动应用,基于 UDP 的 P2P 方案
https://ijust.cc/fm/11/
Author
辛宝 Otto
Published at
2023-10-30