Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

WebRTCPeerConnection

Inherits: RefCounted < Object

Inherited By: WebRTCPeerConnectionExtension

Interface to a WebRTC peer connection.

Description

A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection.

Setting up a WebRTC connection between two peers may not seem a trivial task, but it can be broken down into 3 main steps:

  • The peer that wants to initiate the connection (A from now on) creates an offer and send it to the other peer (B from now on).

  • B receives the offer, generate and answer, and sends it to A).

  • A and B then generates and exchange ICE candidates with each other.

After these steps, the connection should become connected. Keep on reading or look into the tutorial for more information.

Methods

Error

add_ice_candidate ( String media, int index, String name )

void

close ( )

WebRTCDataChannel

create_data_channel ( String label, Dictionary options={} )

Error

create_offer ( )

ConnectionState

get_connection_state ( ) const

GatheringState

get_gathering_state ( ) const

SignalingState

get_signaling_state ( ) const

Error

initialize ( Dictionary configuration={} )

Error

poll ( )

void

set_default_extension ( StringName extension_class ) static

Error

set_local_description ( String type, String sdp )

Error

set_remote_description ( String type, String sdp )


Signals

data_channel_received ( WebRTCDataChannel channel )

Emitted when a new in-band channel is received, i.e. when the channel was created with negotiated: false (default).

The object will be an instance of WebRTCDataChannel. You must keep a reference of it or it will be closed automatically. See create_data_channel.


ice_candidate_created ( String media, int index, String name )

Emitted when a new ICE candidate has been created. The three parameters are meant to be passed to the remote peer over the signaling server.


session_description_created ( String type, String sdp )

Emitted after a successful call to create_offer or set_remote_description (when it generates an answer). The parameters are meant to be passed to