Explore working examples of P2P communication patterns and features
All demos work directly in your browser - no server setup required!
For best results, open demos in multiple browser tabs or share the URL with others to test P2P connections.
Each demo includes the SDK via: <script src="../vdoninja-sdk.js"></script>
Minimal example that joins a room and automatically connects to peers. Sends and receives a message on connect.
Share clipboard content peer‑to‑peer in real time across connected clients.
Comprehensive demonstration of P2P data messaging with multiple nodes, pub/sub patterns, and advanced filtering.
Tip: avoid reserved SDK types ('subscribe' | 'unsubscribe' | 'channelMessage') for custom protocols.
Topic-based messaging system with channel subscriptions, perfect for chat rooms or event systems.
Direct peer-to-peer publish/subscribe without any server relay after initial handshake.
One-to-many streaming setup with automatic viewer management and real-time statistics.
Stream programmatically generated content using Canvas API and Web Audio for creative applications.
Bidirectional video/audio chat using canvas animations and tone generators.
Publish video/audio and generate matching VDO.Ninja scene links with proper room hashing.
Monitor all streams in a room with connection states, timestamps, and waiting times.
Add and remove audio/video tracks on the fly, demonstrating runtime media manipulation.
Inspect connections, streams, and SDK state with live updates and controls.
Fine-grained control over individual media tracks with quality switching and constraints.
Configure and test custom TURN servers for improved connectivity through firewalls.
Minimal Node usage with auto‑detected WebRTC. Announces a data‑only stream and logs P2P messages.
Connect to Social Stream Ninja (SSN) and receive consolidated live chat via P2P data channels.
Install dependencies: npm install ws @roamhq/wrtc
(or node-datachannel
).
Run examples: node demos/node-example.js
or node demos/socialstreamninja-listener.js <session-id>
Local Testing: Open demos in multiple browser tabs or windows
Remote Testing: Share the demo URL with others - no server needed!
Debug Mode: Open browser console to see detailed connection logs
Room Names: Most demos generate random room names to avoid conflicts