From 60c4570e72e36c2a9720593c8baec74ee2ab52d6 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Mon, 10 Aug 2026 22:12:59 +0200 Subject: feat: Phase 9.1–9.5 — WebRTC DataChannel transport for browser P2P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Browser clients can now connect P2P to nodes behind residential NAT via WebRTC DataChannel with ICE/STUN. Validated on SFR Port-Restricted Cone NAT + 4G CGNAT across three scenarios (WiFi LAN, 4G IPv6, 4G IPv4 STUN). No TURN relay needed. Hub serves only as signaling relay (<1 KB). New files: - webrtc_server.py: aiortc-based WebRTC transport (node side) - signaling.py: SDP/ICE relay endpoint (hub side) - transport.js: browser WebRTC client with msgpack framing - webrtc-test.html: spike test page for browser→NAT→node validation - test_webrtc_transport.py: 4 tests (handshake, file transfer, auth, guard) - meshbay-draft-v4.md: architecture spec updated for web client Modified: - hub_client.py: WebRTC offer handling via hub WebSocket - revocation.py: node_id from WS auth + webrtc_answer routing - pyproject.toml: aiortc>=1.9 dependency 123 tests passing (117 existing + 6 new). Co-Authored-By: Claude Opus 4.6 --- .../src/meshbay_hub/static/webrtc-test.html | 258 +++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 packages/meshbay-hub/src/meshbay_hub/static/webrtc-test.html (limited to 'packages/meshbay-hub/src/meshbay_hub/static/webrtc-test.html') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/webrtc-test.html b/packages/meshbay-hub/src/meshbay_hub/static/webrtc-test.html new file mode 100644 index 0000000..0d5750b --- /dev/null +++ b/packages/meshbay-hub/src/meshbay_hub/static/webrtc-test.html @@ -0,0 +1,258 @@ + + + + + + MeshBay — WebRTC Spike Test + + + +
+

MeshBay — WebRTC DataChannel Spike Test

+

Phase 9.5 — E2E browser → NAT → node file transfer via WebRTC

+ +
+

1. Login to Hub

+ + + + +
+ +
+

2. Connect to Node via WebRTC

+ + + + +
+ +
+

3. File Transfer Test

+ +
+ + + +
+ +

Log

+
+
+ + + + + -- cgit v1.2.3