webrtc

package
v0.0.0-...-72d413f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2023 License: Apache-2.0, MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DTLSTransport

type DTLSTransport struct {
	// contains filtered or unexported fields
}

DTLSTransport allows an application access to information about the DTLS transport over which RTP and RTCP packets are sent and received by RTPSender and RTPReceiver, as well other data such as SCTP packets sent and received by data channels.

func (*DTLSTransport) GetLocalParameters

func (t *DTLSTransport) GetLocalParameters() (DTLSParameters, error)

GetLocalParameters returns the DTLS parameters of the local DTLSTransport upon construction.

func (*DTLSTransport) GetRemoteCertificate

func (t *DTLSTransport) GetRemoteCertificate() []byte

GetRemoteCertificate returns the certificate chain in use by the remote side returns an empty list prior to selection of the remote certificate

func (*DTLSTransport) ICETransport

func (t *DTLSTransport) ICETransport() *ICETransport

ICETransport returns the currently-configured *ICETransport or nil if one has not been configured

func (*DTLSTransport) OnStateChange

func (t *DTLSTransport) OnStateChange(f func(DTLSTransportState))

OnStateChange sets a handler that is fired when the DTLS connection state changes.

func (*DTLSTransport) Start

func (t *DTLSTransport) Start(remoteParameters DTLSParameters) error

Start DTLS transport negotiation with the parameters of the remote DTLS transport

func (*DTLSTransport) State

func (t *DTLSTransport) State() DTLSTransportState

State returns the current dtls transport state.

func (*DTLSTransport) Stop

func (t *DTLSTransport) Stop() error

Stop stops and closes the DTLSTransport object.

func (*DTLSTransport) WriteRTCP

func (t *DTLSTransport) WriteRTCP(pkts []rtcp.Packet) (int, error)

WriteRTCP sends a user provided RTCP packet to the connected peer. If no peer is connected the packet is discarded.

type ICECredentialType

type ICECredentialType int

ICECredentialType indicates the type of credentials used to connect to an ICE server.

const (
	// ICECredentialTypePassword describes username and password based
	// credentials as described in https://tools.ietf.org/html/rfc5389.
	ICECredentialTypePassword ICECredentialType = iota

	// ICECredentialTypeOauth describes token based credential as described
	// in https://tools.ietf.org/html/rfc7635.
	ICECredentialTypeOauth
)

func (ICECredentialType) String

func (t ICECredentialType) String() string

type ICEGatherer

type ICEGatherer struct {
	// contains filtered or unexported fields
}

ICEGatherer gathers local host, server reflexive and relay candidates, as well as enabling the retrieval of local Interactive Connectivity Establishment (ICE) parameters which can be exchanged in signaling.

func (*ICEGatherer) Close

func (g *ICEGatherer) Close() error

Close prunes all local candidates, and closes the ports.

func (*ICEGatherer) Gather

func (g *ICEGatherer) Gather() error

Gather ICE candidates.

func (*ICEGatherer) GetLocalCandidates

func (g *ICEGatherer) GetLocalCandidates() ([]ICECandidate, error)

GetLocalCandidates returns the sequence of valid local candidates associated with the ICEGatherer.

func (*ICEGatherer) GetLocalParameters

func (g *ICEGatherer) GetLocalParameters() (ICEParameters, error)

GetLocalParameters returns the ICE parameters of the ICEGatherer.

func (*ICEGatherer) OnLocalCandidate

func (g *ICEGatherer) OnLocalCandidate(f func(*ICECandidate))

OnLocalCandidate sets an event handler which fires when a new local ICE candidate is available Take note that the handler is gonna be called with a nil pointer when gathering is finished.

func (*ICEGatherer) OnStateChange

func (g *ICEGatherer) OnStateChange(f func(ICEGathererState))

OnStateChange fires any time the ICEGatherer changes

func (*ICEGatherer) State

func (g *ICEGatherer) State() ICEGathererState

State indicates the current state of the ICE gatherer.

type ICEServer

type ICEServer struct {
	URLs           []string          `json:"urls"`
	Username       string            `json:"username,omitempty"`
	Credential     interface{}       `json:"credential,omitempty"`
	CredentialType ICECredentialType `json:"credentialType,omitempty"`
}

ICEServer describes a single STUN and TURN server that can be used by the ICEAgent to establish a connection with a peer.

type ICETransport

type ICETransport struct {
	// contains filtered or unexported fields
}

ICETransport allows an application access to information about the ICE transport over which packets are sent and received.

func NewICETransport

func NewICETransport(gatherer *ICEGatherer, loggerFactory logging.LoggerFactory) *ICETransport

NewICETransport creates a new NewICETransport.

func (*ICETransport) AddRemoteCandidate

func (t *ICETransport) AddRemoteCandidate(remoteCandidate *ICECandidate) error

AddRemoteCandidate adds a candidate associated with the remote ICETransport.

func (*ICETransport) GetSelectedCandidatePair

func (t *ICETransport) GetSelectedCandidatePair() (*ICECandidatePair, error)

GetSelectedCandidatePair returns the selected candidate pair on which packets are sent if there is no selected pair nil is returned

func (*ICETransport) OnConnectionStateChange

func (t *ICETransport) OnConnectionStateChange(f func(ICETransportState))

OnConnectionStateChange sets a handler that is fired when the ICE connection state changes.

func (*ICETransport) OnSelectedCandidatePairChange

func (t *ICETransport) OnSelectedCandidatePairChange(f func(*ICECandidatePair))

OnSelectedCandidatePairChange sets a handler that is invoked when a new ICE candidate pair is selected

func (*ICETransport) Role

func (t *ICETransport) Role() ICERole

Role indicates the current role of the ICE transport.

func (*ICETransport) SetRemoteCandidates

func (t *ICETransport) SetRemoteCandidates(remoteCandidates []ICECandidate) error

SetRemoteCandidates sets the sequence of candidates associated with the remote ICETransport.

func (*ICETransport) Start

func (t *ICETransport) Start(gatherer *ICEGatherer, params ICEParameters, role *ICERole) error

Start incoming connectivity checks based on its configured role.

func (*ICETransport) State

func (t *ICETransport) State() ICETransportState

State returns the current ice transport state.

func (*ICETransport) Stop

func (t *ICETransport) Stop() error

Stop irreversibly stops the ICETransport.

type PeerConnection

type PeerConnection struct {
	// contains filtered or unexported fields
}

PeerConnection represents a WebRTC connection that establishes a peer-to-peer communications with another PeerConnection instance in a browser, or to another endpoint implementing the required protocols.

func NewPeerConnection

func NewPeerConnection(configuration Configuration) (*PeerConnection, error)

NewPeerConnection creates a PeerConnection with the default codecs and interceptors. See RegisterDefaultCodecs and RegisterDefaultInterceptors.

If you wish to customize the set of available codecs or the set of active interceptors, create a MediaEngine and call api.NewPeerConnection instead of this function.

func (*PeerConnection) AddICECandidate

func (pc *PeerConnection) AddICECandidate(candidate ICECandidateInit) error

AddICECandidate accepts an ICE candidate string and adds it to the existing set of candidates.

func (*PeerConnection) AddTrack

func (pc *PeerConnection) AddTrack(track TrackLocal) (*RTPSender, error)

AddTrack adds a Track to the PeerConnection

func (*PeerConnection) AddTransceiverFromKind

func (pc *PeerConnection) AddTransceiverFromKind(kind RTPCodecType, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)

AddTransceiverFromKind Create a new RtpTransceiver and adds it to the set of transceivers.

func (*PeerConnection) AddTransceiverFromTrack

func (pc *PeerConnection) AddTransceiverFromTrack(track TrackLocal, init ...RTPTransceiverInit) (t *RTPTransceiver, err error)

AddTransceiverFromTrack Create a new RtpTransceiver(SendRecv or SendOnly) and add it to the set of transceivers.

func (*PeerConnection) Close

func (pc *PeerConnection) Close() error

Close ends the PeerConnection

func (*PeerConnection) ConnectionState

func (pc *PeerConnection) ConnectionState() PeerConnectionState

ConnectionState attribute returns the connection state of the PeerConnection instance.

func (*PeerConnection) CreateAnswer

func (pc *PeerConnection) CreateAnswer(options *AnswerOptions) (SessionDescription, error)

CreateAnswer starts the PeerConnection and generates the localDescription

func (*PeerConnection) CreateDataChannel

func (pc *PeerConnection) CreateDataChannel(label string, options *DataChannelInit) (*DataChannel, error)

CreateDataChannel creates a new DataChannel object with the given label and optional DataChannelInit used to configure properties of the underlying channel such as data reliability.

func (*PeerConnection) CreateOffer

func (pc *PeerConnection) CreateOffer(options *OfferOptions) (SessionDescription, error)

CreateOffer starts the PeerConnection and generates the localDescription https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-createoffer

func (*PeerConnection) CurrentLocalDescription

func (pc *PeerConnection) CurrentLocalDescription() *SessionDescription

CurrentLocalDescription represents the local description that was successfully negotiated the last time the PeerConnection transitioned into the stable state plus any local candidates that have been generated by the ICEAgent since the offer or answer was created.

func (*PeerConnection) CurrentRemoteDescription

func (pc *PeerConnection) CurrentRemoteDescription() *SessionDescription

CurrentRemoteDescription represents the last remote description that was successfully negotiated the last time the PeerConnection transitioned into the stable state plus any remote candidates that have been supplied via AddICECandidate() since the offer or answer was created.

func (*PeerConnection) GetConfiguration

func (pc *PeerConnection) GetConfiguration() Configuration

GetConfiguration returns a Configuration object representing the current configuration of this PeerConnection object. The returned object is a copy and direct mutation on it will not take affect until SetConfiguration has been called with Configuration passed as its only argument. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-getconfiguration

func (*PeerConnection) GetReceivers

func (pc *PeerConnection) GetReceivers() (receivers []*RTPReceiver)

GetReceivers returns the RTPReceivers that are currently attached to this PeerConnection

func (*PeerConnection) GetSenders

func (pc *PeerConnection) GetSenders() (result []*RTPSender)

GetSenders returns the RTPSender that are currently attached to this PeerConnection

func (*PeerConnection) GetStats

func (pc *PeerConnection) GetStats() StatsReport

GetStats return data providing statistics about the overall connection

func (*PeerConnection) GetTransceivers

func (pc *PeerConnection) GetTransceivers() []*RTPTransceiver

GetTransceivers returns the RtpTransceiver that are currently attached to this PeerConnection

func (*PeerConnection) ICEConnectionState

func (pc *PeerConnection) ICEConnectionState() ICEConnectionState

ICEConnectionState returns the ICE connection state of the PeerConnection instance.

func (*PeerConnection) ICEGatheringState

func (pc *PeerConnection) ICEGatheringState() ICEGatheringState

ICEGatheringState attribute returns the ICE gathering state of the PeerConnection instance.

func (*PeerConnection) LocalDescription

func (pc *PeerConnection) LocalDescription() *SessionDescription

LocalDescription returns PendingLocalDescription if it is not null and otherwise it returns CurrentLocalDescription. This property is used to determine if SetLocalDescription has already been called. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-localdescription

func (*PeerConnection) OnConnectionStateChange

func (pc *PeerConnection) OnConnectionStateChange(f func(PeerConnectionState))

OnConnectionStateChange sets an event handler which is called when the PeerConnectionState has changed

func (*PeerConnection) OnDataChannel

func (pc *PeerConnection) OnDataChannel(f func(*DataChannel))

OnDataChannel sets an event handler which is invoked when a data channel message arrives from a remote peer.

func (*PeerConnection) OnICECandidate

func (pc *PeerConnection) OnICECandidate(f func(*ICECandidate))

OnICECandidate sets an event handler which is invoked when a new ICE candidate is found. Take note that the handler is gonna be called with a nil pointer when gathering is finished.

func (*PeerConnection) OnICEConnectionStateChange

func (pc *PeerConnection) OnICEConnectionStateChange(f func(ICEConnectionState))

OnICEConnectionStateChange sets an event handler which is called when an ICE connection state is changed.

func (*PeerConnection) OnICEGatheringStateChange

func (pc *PeerConnection) OnICEGatheringStateChange(f func(ICEGathererState))

OnICEGatheringStateChange sets an event handler which is invoked when the ICE candidate gathering state has changed.

func (*PeerConnection) OnNegotiationNeeded

func (pc *PeerConnection) OnNegotiationNeeded(f func())

OnNegotiationNeeded sets an event handler which is invoked when a change has occurred which requires session negotiation

func (*PeerConnection) OnSignalingStateChange

func (pc *PeerConnection) OnSignalingStateChange(f func(SignalingState))

OnSignalingStateChange sets an event handler which is invoked when the peer connection's signaling state changes

func (*PeerConnection) OnTrack

func (pc *PeerConnection) OnTrack(f func(*TrackRemote, *RTPReceiver))

OnTrack sets an event handler which is called when remote track arrives from a remote peer.

func (*PeerConnection) PendingLocalDescription

func (pc *PeerConnection) PendingLocalDescription() *SessionDescription

PendingLocalDescription represents a local description that is in the process of being negotiated plus any local candidates that have been generated by the ICEAgent since the offer or answer was created. If the PeerConnection is in the stable state, the value is null.

func (*PeerConnection) PendingRemoteDescription

func (pc *PeerConnection) PendingRemoteDescription() *SessionDescription

PendingRemoteDescription represents a remote description that is in the process of being negotiated, complete with any remote candidates that have been supplied via AddICECandidate() since the offer or answer was created. If the PeerConnection is in the stable state, the value is null.

func (*PeerConnection) RemoteDescription

func (pc *PeerConnection) RemoteDescription() *SessionDescription

RemoteDescription returns pendingRemoteDescription if it is not null and otherwise it returns currentRemoteDescription. This property is used to determine if setRemoteDescription has already been called. https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-remotedescription

func (*PeerConnection) RemoveTrack

func (pc *PeerConnection) RemoveTrack(sender *RTPSender) (err error)

RemoveTrack removes a Track from the PeerConnection

func (*PeerConnection) SCTP

func (pc *PeerConnection) SCTP() *SCTPTransport

SCTP returns the SCTPTransport for this PeerConnection

The SCTP transport over which SCTP data is sent and received. If SCTP has not been negotiated, the value is nil. https://www.w3.org/TR/webrtc/#attributes-15

func (*PeerConnection) SetConfiguration

func (pc *PeerConnection) SetConfiguration(configuration Configuration) error

SetConfiguration updates the configuration of this PeerConnection object.

func (*PeerConnection) SetIdentityProvider

func (pc *PeerConnection) SetIdentityProvider(provider string) error

SetIdentityProvider is used to configure an identity provider to generate identity assertions

func (*PeerConnection) SetLocalDescription

func (pc *PeerConnection) SetLocalDescription(desc SessionDescription) error

SetLocalDescription sets the SessionDescription of the local peer

func (*PeerConnection) SetRemoteDescription

func (pc *PeerConnection) SetRemoteDescription(desc SessionDescription) error

SetRemoteDescription sets the SessionDescription of the remote peer nolint: gocyclo

func (*PeerConnection) SignalingState

func (pc *PeerConnection) SignalingState() SignalingState

SignalingState attribute returns the signaling state of the PeerConnection instance.

func (*PeerConnection) WriteRTCP

func (pc *PeerConnection) WriteRTCP(pkts []rtcp.Packet) error

WriteRTCP sends a user provided RTCP packet to the connected peer. If no peer is connected the packet is discarded. It also runs any configured interceptors.

type SettingEngine

type SettingEngine struct {
	BufferFactory func(packetType packetio.BufferPacketType, ssrc uint32) io.ReadWriteCloser
	LoggerFactory logging.LoggerFactory
	// contains filtered or unexported fields
}

SettingEngine allows influencing behavior in ways that are not supported by the WebRTC API. This allows us to support additional use-cases without deviating from the WebRTC API elsewhere.

func (*SettingEngine) DetachDataChannels

func (e *SettingEngine) DetachDataChannels()

DetachDataChannels enables detaching data channels. When enabled data channels have to be detached in the OnOpen callback using the DataChannel.Detach method.

func (*SettingEngine) DisableCertificateFingerprintVerification

func (e *SettingEngine) DisableCertificateFingerprintVerification(isDisabled bool)

DisableCertificateFingerprintVerification disables fingerprint verification after DTLS Handshake has finished

func (*SettingEngine) DisableMediaEngineCopy

func (e *SettingEngine) DisableMediaEngineCopy(isDisabled bool)

DisableMediaEngineCopy stops the MediaEngine from being copied. This allows a user to modify the MediaEngine after the PeerConnection has been constructed. This is useful if you wish to modify codecs after signaling. Make sure not to share MediaEngines between PeerConnections.

func (*SettingEngine) DisableSRTCPReplayProtection

func (e *SettingEngine) DisableSRTCPReplayProtection(isDisabled bool)

DisableSRTCPReplayProtection disables SRTCP replay protection.

func (*SettingEngine) DisableSRTPReplayProtection

func (e *SettingEngine) DisableSRTPReplayProtection(isDisabled bool)

DisableSRTPReplayProtection disables SRTP replay protection.

func (*SettingEngine) SetAnsweringDTLSRole

func (e *SettingEngine) SetAnsweringDTLSRole(role DTLSRole) error

SetAnsweringDTLSRole sets the DTLS role that is selected when offering The DTLS role controls if the WebRTC Client as a client or server. This may be useful when interacting with non-compliant clients or debugging issues.

DTLSRoleActive:

Act as DTLS Client, send the ClientHello and starts the handshake

DTLSRolePassive:

Act as DTLS Server, wait for ClientHello

func (*SettingEngine) SetDTLSReplayProtectionWindow

func (e *SettingEngine) SetDTLSReplayProtectionWindow(n uint)

SetDTLSReplayProtectionWindow sets a replay attack protection window size of DTLS connection.

func (*SettingEngine) SetEphemeralUDPPortRange

func (e *SettingEngine) SetEphemeralUDPPortRange(portMin, portMax uint16) error

SetEphemeralUDPPortRange limits the pool of ephemeral ports that ICE UDP connections can allocate from. This affects both host candidates, and the local address of server reflexive candidates.

func (*SettingEngine) SetHostAcceptanceMinWait

func (e *SettingEngine) SetHostAcceptanceMinWait(t time.Duration)

SetHostAcceptanceMinWait sets the ICEHostAcceptanceMinWait

func (*SettingEngine) SetICECredentials

func (e *SettingEngine) SetICECredentials(usernameFragment, password string)

SetICECredentials sets a staic uFrag/uPwd to be used by pion/ice

This is useful if you want to do signalless WebRTC session, or having a reproducible environment with static credentials

func (*SettingEngine) SetICEMulticastDNSMode

func (e *SettingEngine) SetICEMulticastDNSMode(multicastDNSMode ice.MulticastDNSMode)

SetICEMulticastDNSMode controls if pion/ice queries and generates mDNS ICE Candidates

func (*SettingEngine) SetICEProxyDialer

func (e *SettingEngine) SetICEProxyDialer(d proxy.Dialer)

SetICEProxyDialer sets the proxy dialer interface based on golang.org/x/net/proxy.

func (*SettingEngine) SetICETCPMux

func (e *SettingEngine) SetICETCPMux(tcpMux ice.TCPMux)

SetICETCPMux enables ICE-TCP when set to a non-nil value. Make sure that NetworkTypeTCP4 or NetworkTypeTCP6 is enabled as well.

func (*SettingEngine) SetICETimeouts

func (e *SettingEngine) SetICETimeouts(disconnectedTimeout, failedTimeout, keepAliveInterval time.Duration)

SetICETimeouts sets the behavior around ICE Timeouts * disconnectedTimeout is the duration without network activity before a Agent is considered disconnected. Default is 5 Seconds * failedTimeout is the duration without network activity before a Agent is considered failed after disconnected. Default is 25 Seconds * keepAliveInterval is how often the ICE Agent sends extra traffic if there is no activity, if media is flowing no traffic will be sent. Default is 2 seconds

func (*SettingEngine) SetICEUDPMux

func (e *SettingEngine) SetICEUDPMux(udpMux ice.UDPMux)

SetICEUDPMux allows ICE traffic to come through a single UDP port, drastically simplifying deployments where ports will need to be opened/forwarded. UDPMux should be started prior to creating PeerConnections.

func (*SettingEngine) SetInterfaceFilter

func (e *SettingEngine) SetInterfaceFilter(filter func(string) bool)

SetInterfaceFilter sets the filtering functions when gathering ICE candidates This can be used to exclude certain network interfaces from ICE. Which may be useful if you know a certain interface will never succeed, or if you wish to reduce the amount of information you wish to expose to the remote peer

func (*SettingEngine) SetLite

func (e *SettingEngine) SetLite(lite bool)

SetLite configures whether or not the ice agent should be a lite agent

func (*SettingEngine) SetMulticastDNSHostName

func (e *SettingEngine) SetMulticastDNSHostName(hostName string)

SetMulticastDNSHostName sets a static HostName to be used by pion/ice instead of generating one on startup

This should only be used for a single PeerConnection. Having multiple PeerConnections with the same HostName will cause undefined behavior

func (*SettingEngine) SetNAT1To1IPs

func (e *SettingEngine) SetNAT1To1IPs(ips []string, candidateType ICECandidateType)

SetNAT1To1IPs sets a list of external IP addresses of 1:1 (D)NAT and a candidate type for which the external IP address is used. This is useful when you are host a server using Pion on an AWS EC2 instance which has a private address, behind a 1:1 DNAT with a public IP (e.g. Elastic IP). In this case, you can give the public IP address so that Pion will use the public IP address in its candidate instead of the private IP address. The second argument, candidateType, is used to tell Pion which type of candidate should use the given public IP address. Two types of candidates are supported:

ICECandidateTypeHost:

The public IP address will be used for the host candidate in the SDP.

ICECandidateTypeSrflx:

A server reflexive candidate with the given public IP address will be added

to the SDP.

Please note that if you choose ICECandidateTypeHost, then the private IP address won't be advertised with the peer. Also, this option cannot be used along with mDNS.

If you choose ICECandidateTypeSrflx, it simply adds a server reflexive candidate with the public IP. The host candidate is still available along with mDNS capabilities unaffected. Also, you cannot give STUN server URL at the same time. It will result in an error otherwise.

func (*SettingEngine) SetNetworkTypes

func (e *SettingEngine) SetNetworkTypes(candidateTypes []NetworkType)

SetNetworkTypes configures what types of candidate networks are supported during local and server reflexive gathering.

func (*SettingEngine) SetPrflxAcceptanceMinWait

func (e *SettingEngine) SetPrflxAcceptanceMinWait(t time.Duration)

SetPrflxAcceptanceMinWait sets the ICEPrflxAcceptanceMinWait

func (*SettingEngine) SetRelayAcceptanceMinWait

func (e *SettingEngine) SetRelayAcceptanceMinWait(t time.Duration)

SetRelayAcceptanceMinWait sets the ICERelayAcceptanceMinWait

func (*SettingEngine) SetSDPMediaLevelFingerprints

func (e *SettingEngine) SetSDPMediaLevelFingerprints(sdpMediaLevelFingerprints bool)

SetSDPMediaLevelFingerprints configures the logic for DTLS Fingerprint insertion If true, fingerprints will be inserted in the sdp at the fingerprint level, instead of the session level. This helps with compatibility with some webrtc implementations.

func (*SettingEngine) SetSRTCPReplayProtectionWindow

func (e *SettingEngine) SetSRTCPReplayProtectionWindow(n uint)

SetSRTCPReplayProtectionWindow sets a replay attack protection window size of SRTCP session.

func (*SettingEngine) SetSRTPProtectionProfiles

func (e *SettingEngine) SetSRTPProtectionProfiles(profiles ...dtls.SRTPProtectionProfile)

SetSRTPProtectionProfiles allows the user to override the default SRTP Protection Profiles The default srtp protection profiles are provided by the function `defaultSrtpProtectionProfiles`

func (*SettingEngine) SetSRTPReplayProtectionWindow

func (e *SettingEngine) SetSRTPReplayProtectionWindow(n uint)

SetSRTPReplayProtectionWindow sets a replay attack protection window size of SRTP session.

func (*SettingEngine) SetSrflxAcceptanceMinWait

func (e *SettingEngine) SetSrflxAcceptanceMinWait(t time.Duration)

SetSrflxAcceptanceMinWait sets the ICESrflxAcceptanceMinWait

func (*SettingEngine) SetVNet

func (e *SettingEngine) SetVNet(vnet *vnet.Net)

SetVNet sets the VNet instance that is passed to pion/ice

VNet is a virtual network layer for Pion, allowing users to simulate different topologies, latency, loss and jitter. This can be useful for learning WebRTC concepts or testing your application in a lab environment

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL