Docs
React SDK

useConnectionQuality

Read room network health, RTC stats and participant quality.

Import

React
import { useConnectionQuality } from '@relayrtc/react'

Requirements

Call this hook inside RelayProvider, in a React function component or custom hook. A joined room is needed for live data and actions.

Returns

FieldTypeMeaning
qualityConnectionQuality or nullexcellent, good, poor, critical or lost.
statsRtcQualityStats or nullLatest local WebRTC statistics.
participantQualitiesReadonlyMap<string, ConnectionQualityEvent>Quality updates keyed by participant ID.

Example

React
const { quality, stats } = useConnectionQuality()
 
return (
  <div>
    <p>Connection: {quality ?? 'Waiting for stats'}</p>
    <p>Received bytes: {stats?.bytesReceived ?? 0}</p>
  </div>
)

Options and behavior

Stats are polled approximately every 2 seconds while the room is active. Fields include bytesSent, bytesReceived, packetsLost, packetsReceived, roundTripTime, jitter, availableIncomingBitrate, availableOutgoingBitrate and timestamp. Optional fields include incomingBitrate, outgoingBitrate, packetLossRatio, stale, streams and selected ICE candidate details. Jitter/RTT use WebRTC seconds; bitrates use bits per second. Null indicates unavailable measurements. Network quality is separate from video resolution.