SmallWebRTCTransport
enables peer-to-peer WebRTC connections between clients and your Pipecat application. It implements bidirectional audio and video streaming using WebRTC for real-time communication.
This transport is intended for lightweight implementations, particularly for local development and testing. It expects your Pipecat server to include the corresponding SmallWebRTCTransport
server-side implementation.
Usage
Basic Setup
API Reference
Constructor Options
Properties
TransportConnectionParams
connect()
, the SmallWebRTCTransport
optionally takes a set of connection parameters. This can be provided directly to the PipecatClient
’s connect()
method or via a starting endpoint passed to the PipecatClient
’s startBotAndConnect()
method. If using an endpoint, your endpoint should return a JSON object matching the SmallWebRTCTransportConnectionOptions
type, which currently expects a single webrtcUrl
property.
Methods
For most operations, you will not interact with the transport directly. Most methods have an equivalent in thePipecatClient
and should be called from the PipecatClient
. However, there are a few transport-specific methods that you may need to call directly. When doing so, be sure to access your transport via the transport
property of the PipecatClient
instance.
Sets the preferred audio codec.
Sets the preferred video codec.
Events
The transport implements the variousPipecatClient
event handlers.
Connection Process
The connection process follows these steps:- The transport negotiates a WebRTC connection with the corresponding pipecat transport, complete with transceivers for the media and a data channel for messaging.
- The transport sends a message to the pipecat transport to let it know it’s ready.
- The Pipecat transport sends a message letting the client know it is ready.
Reconnection Handling
The transport includes automatic reconnection logic:- Up to 3 reconnection attempts after connection failures
- Detection of ICE connection state changes
- Graceful recovery from temporary disconnections
- Graceful disconnect when reconnection attempts fail