Title here
Summary here
@observertc/samples-encoder
provides efficient binary encoding for ObserveRTC monitoring samples. It converts JavaScript monitoring data into compact binary formats optimized for network transmission.
@observertc/client-monitor-js
npm install @observertc/samples-encoder
import { ClientSampleEncoder } from '@observertc/samples-encoder';
// Create encoder
const encoder = new ClientSampleEncoder();
// Encode client monitoring sample
const clientSample = {
clientId: 'client-123',
callId: 'call-456',
timestamp: Date.now(),
samples: [
// PeerConnection samples from client-monitor-js
{ /* peer connection stats */ }
]
};
// Encode to binary format (60-80% smaller than JSON)
const encodedData = encoder.encode(clientSample);
// Send to analytics backend
fetch('/api/samples', {
method: 'POST',
headers: { 'Content-Type': 'application/octet-stream' },
body: encodedData
});
import { ClientMonitor } from '@observertc/client-monitor-js';
import { ClientSampleEncoder } from '@observertc/samples-encoder';
const monitor = new ClientMonitor({ /* config */ });
const encoder = new ClientSampleEncoder();
// Automatically encode and send samples
monitor.on('sample-created', async (sample) => {
const encoded = encoder.encode(sample);
// Send to analytics server
await fetch('/api/analytics', {
method: 'POST',
headers: { 'Content-Type': 'application/octet-stream' },
body: encoded
});
});
import { ClientSampleEncoder } from '@observertc/samples-encoder';
const encoder = new ClientSampleEncoder();
const websocket = new WebSocket('wss://analytics.example.com');
// Encode and stream samples
monitor.on('sample-created', (sample) => {
const encoded = encoder.encode(sample);
websocket.send(encoded);
});
// Server receives and processes encoded samples
import { SampleDecoder } from '@observertc/sample-decoder-js';
app.post('/api/samples', async (req, res) => {
const decoder = new SampleDecoder();
const sample = decoder.decode(req.body);
await processMonitoringData(sample);
res.status(200).send('OK');
});
ClientSampleEncoder
- Encode client monitoring samplesSfuSampleEncoder
- Encode SFU server metricsTurnSampleEncoder
- Encode TURN server statisticsencode(sample)
- Encode single sample to binary formatFor comprehensive documentation including detailed configuration options, advanced encoding strategies, and complete API reference: