辛宝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 協議的特性,可能會面臨一些挑戰,如數據包丟失、亂序等問題,因此在設計和實現時需要考慮數據可靠性和傳輸效率的平衡。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。