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-jsnpm install @observertc/samples-encoderimport { 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: