mirror of
https://github.com/xtr-dev/rondevu-client.git
synced 2025-12-10 10:53:24 +00:00
- Add npm version badge - Update header with tagline - Improve README structure 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# Rondevu
|
|
|
|
🎯 Meet WebRTC peers by topic, by peer ID, or by connection ID.
|
|
|
|
## @xtr-dev/rondevu-client
|
|
|
|
[](https://www.npmjs.com/package/@xtr-dev/rondevu-client)
|
|
|
|
TypeScript Rondevu HTTP and WebRTC client, for simple peer discovery and connection.
|
|
|
|
### Install
|
|
|
|
```bash
|
|
npm install @xtr-dev/rondevu-client
|
|
```
|
|
|
|
### Usage
|
|
|
|
```typescript
|
|
import { Rondevu } from '@xtr-dev/rondevu-client';
|
|
|
|
const rdv = new Rondevu({ baseUrl: 'https://server.com' });
|
|
|
|
// Connect by topic
|
|
const conn = await rdv.join('room');
|
|
|
|
// Or connect by ID
|
|
const conn = await rdv.connect('meeting-123');
|
|
|
|
// Use the connection
|
|
conn.on('connect', () => {
|
|
const channel = conn.dataChannel('chat');
|
|
channel.send('Hello!');
|
|
});
|
|
```
|
|
|
|
### API
|
|
|
|
**Main Methods:**
|
|
- `rdv.join(topic)` - Auto-connect to first peer in topic
|
|
- `rdv.join(topic, {filter})` - Connect to specific peer by ID
|
|
- `rdv.create(id, topic)` - Create connection for others to join
|
|
- `rdv.connect(id)` - Join connection by ID
|
|
|
|
**Connection Events:**
|
|
- `connect` - Connection established
|
|
- `disconnect` - Connection closed
|
|
- `datachannel` - Remote peer created data channel
|
|
- `stream` - Remote media stream received
|
|
- `error` - Error occurred
|
|
|
|
**Connection Methods:**
|
|
- `conn.dataChannel(label)` - Get or create data channel
|
|
- `conn.addStream(stream)` - Add media stream
|
|
- `conn.getPeerConnection()` - Get underlying RTCPeerConnection
|
|
- `conn.close()` - Close connection
|
|
|
|
### License
|
|
|
|
MIT
|