HUDDLE 01 -> Basics
Overview :
Founded in 2020, by Ayush Ranjan and Susmit Lavania - Huddle01 is on a mission to democratize digital connectivity by building the 1st DePIN for RTC(real-time communication), focused on data privacy, quality and community-driven scalability.
What is HUDDLE01?
HUDDLE01 is a decentralized video and audio communication platform that leverages Web3 technologies. It provides users with a range of tools for hosting and participating in virtual meetings, webinars, and events while integrating blockchain-based features such as tokenized rewards, decentralized identity, and privacy-focused communication.
HUDDLE01 aims to empower users by giving them control over their data and interactions, offering a secure and decentralized alternative to traditional video conferencing platforms. It's particularly popular within the Web3 community due to its focus on decentralization and privacy.
HUDDLE01 SDK Structure :
The core principles around the architecture of Huddle01’s React SDK are what make using it a breeze. Below are some concepts and glossary that you should be familiar with before using the SDK.
Room
A room is a virtual entity inside where you can have Huddle01 meeting sessions. It contains all the participants and their media streams. Each room is identified by a unique roomID that is generated when you create a room. A room does not expire and you can have multiple meeting sessions inside the same room for as long as you want, one meeting session at a time.
Peer
A peer is a participant inside a room. It is an object containing all the media streams of a participant. Each peer is represented by a unique peerId. Every peer is associated with a room.
MediaStream
The MediaStream
interface represents a stream of media content. A stream can consist of several tracks, which can be either audio or video. MediaStreams
are associated with their respective peer.
MediaStreamTrack
The MediaStreamTrack
interface represents a single media track within a MediaStream
. It can be either an audio or a video track.
Local
Once you join a room, all operations related to your own Peer object insde a room are represented by the keyword local.
Item | Variable |
Your Peer Object | localPeer |
Your Audio Stream | localAudio |
Your Video Stream | localVideo |
Remote
All other peers in the same room as you are represented by the keyword remote. Performing any operations related to a remote peer would require you to pass in the peerId of the remote peer.
Item | Variable |
Another Peer Object | remotePeer |
Another Peer's Audio Stream | remoteAudio |
Another Peer's Video Stream | remoteVideo |
Data Message
Besides MediaStreams
, peers in the room can also send messages to one other in the form of text strings not exceeding 280 characters in length. These messages are called data messages.
Metadata
Metadata is a generic object that can be attached to both Peers and the Room itself. It can be used to store any additional information that you want to associate with a Peer or a Room. The SDKs expose methods to get and set these metadata.
Room States
At any given point, a Room can be in any one of these 6 states.
RoomState | Description |
idle | Room is created and ready to be joined |
connecting | You are trying to join the room |
connected | You have joined the room |
failed | You have failed to join the room |
left | You have left the room |
closed | The room has been closed |
Subscribe to my newsletter
Read articles from Rajdeep Singha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by