mirror of
https://github.com/xtr-dev/rondevu-client.git
synced 2025-12-10 10:53:24 +00:00
c8e5e4d17a2f4211263c054a655f498561b082dd
- Remove join(), listTopics(), listSessions() methods - Simplify to just create(id) and connect(id) - Remove topic-related types and interfaces - Add automatic version checking against server - Update README with simplified API - Client version: 0.3.2 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Rondevu
🎯 Simple WebRTC peer signaling
Connect peers directly by ID with automatic WebRTC negotiation.
Related repositories:
- rondevu-server - HTTP signaling server
- rondevu-demo - Interactive demo
@xtr-dev/rondevu-client
TypeScript client library for Rondevu peer signaling and WebRTC connection management. Handles automatic signaling, ICE candidate exchange, and connection establishment.
Install
npm install @xtr-dev/rondevu-client
Usage
Browser
import { Rondevu } from '@xtr-dev/rondevu-client';
const rdv = new Rondevu({
baseUrl: 'https://api.ronde.vu',
rtcConfig: {
iceServers: [
{ urls: 'stun:stun.l.google.com:19302' },
{ urls: 'stun:stun1.l.google.com:19302' }
]
}
});
// Create a connection with custom ID
const connection = await rdv.create('my-room-123');
// Or connect to an existing connection
const connection = await rdv.connect('my-room-123');
// Use data channels
connection.on('connect', () => {
const channel = connection.dataChannel('chat');
channel.send('Hello!');
});
connection.on('datachannel', (channel) => {
if (channel.label === 'chat') {
channel.onmessage = (event) => {
console.log('Received:', event.data);
};
}
});
Node.js
import { Rondevu } from '@xtr-dev/rondevu-client';
import wrtc from '@roamhq/wrtc';
import fetch from 'node-fetch';
const rdv = new Rondevu({
baseUrl: 'https://api.ronde.vu',
fetch: fetch as any,
wrtc: {
RTCPeerConnection: wrtc.RTCPeerConnection,
RTCSessionDescription: wrtc.RTCSessionDescription,
RTCIceCandidate: wrtc.RTCIceCandidate,
}
});
const connection = await rdv.create('my-room-123');
connection.on('connect', () => {
const channel = connection.dataChannel('chat');
channel.send('Hello from Node.js!');
});
API
Main Methods:
rdv.create(id)- Create connection with custom IDrdv.connect(id)- Connect to existing connection by ID
Connection Events:
connect- Connection establisheddisconnect- Connection closederror- Connection errordatachannel- New data channel receivedstream- Media stream received
Connection Methods:
connection.dataChannel(label)- Get or create data channelconnection.addStream(stream)- Add media streamconnection.close()- Close connection
Version Compatibility
The client automatically checks server compatibility via the /health endpoint. If the server version is incompatible, an error will be thrown during initialization.
License
MIT
Description
Languages
TypeScript
96.1%
JavaScript
3.9%