feat: Implement broadcaster-hosted TURN functionality over Hyperswarm. Remove the need for Google TURN/STUN servers.

- Modified code to enable the broadcaster to act as a TURN server using Hyperswarm connections.
- Replaced external STUN/TURN servers with custom signaling over Hyperswarm.
- Configured RTCPeerConnection with an empty ICE servers array to prevent reliance on external servers.
- Implemented custom signaling protocol for exchanging offers, answers, and ICE candidates over Hyperswarm connections.
- Updated broadcaster to relay media streams, effectively mimicking TURN server behavior within the Hyperswarm network.
- Adjusted peer connection setup for both broadcaster and listener to use Hyperswarm for signaling and data transport.
- Removed dependency on third-party servers; all communication now occurs within the peer-to-peer network.
- Updated UI elements and controls to reflect the changes.
- Ensured that peer count updates correctly with new connection handling.
This commit is contained in:
Raven Scott
2024-11-24 06:10:31 -05:00
parent e6891e81c3
commit b10b4f390d
3 changed files with 189 additions and 258 deletions

View File

@ -34,7 +34,7 @@
<button id="open-join-modal" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#joinModal">Join Station</button>
</div>
<div id="controls" class="d-none mt-4">
<p id="station-info"></p>
<p id="station-info"></p>
<button id="leave-stream" class="btn btn-danger mt-2">Leave Broadcast</button>
<!-- Broadcaster-only Controls -->