pub struct WebRtcConnection { /* private fields */ }Expand description
WebRtcConnection - WebRTC P2P Connect
Implementations§
Source§impl WebRtcConnection
impl WebRtcConnection
Sourcepub fn new(
peer_id: ActrId,
peer_connection: Arc<RTCPeerConnection>,
event_tx: Sender<ConnectionEvent>,
) -> Self
pub fn new( peer_id: ActrId, peer_connection: Arc<RTCPeerConnection>, event_tx: Sender<ConnectionEvent>, ) -> Self
Create WebRtcConnection from RTCPeerConnection
§Arguments
peer_id: Peer identity for event identificationpeer_connection: Arc wrapped RTCPeerConnectionevent_tx: Broadcast sender for connection events
Sourcepub fn install_state_change_handler(&self)
pub fn install_state_change_handler(&self)
Install a state-change handler on the underlying RTCPeerConnection.
This keeps connected in sync with the WebRTC connection state and
proactively closes the PeerConnection and clears internal caches when
entering a terminal state (Disconnected/Failed/Closed).
Sourcepub async fn connect(&self) -> NetworkResult<()>
pub async fn connect(&self) -> NetworkResult<()>
establish Connect(WebRTC Connect already alreadyvia signaling establish , this in only is mark record )
Sourcepub fn subscribe_events(&self) -> Receiver<ConnectionEvent>
pub fn subscribe_events(&self) -> Receiver<ConnectionEvent>
Subscribe to connection events
Sourcepub fn is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Checkwhether already Connect
Sourcepub async fn close(&self) -> NetworkResult<()>
pub async fn close(&self) -> NetworkResult<()>
Close connection and broadcast ConnectionClosed event
Source§impl WebRtcConnection
impl WebRtcConnection
Sourcepub async fn get_lane(
&self,
payload_type: PayloadType,
) -> NetworkResult<DataLane>
pub async fn get_lane( &self, payload_type: PayloadType, ) -> NetworkResult<DataLane>
GetorCreate DataLane( carry Cache)
Sourcepub async fn invalidate_lane(&self, payload_type: PayloadType)
pub async fn invalidate_lane(&self, payload_type: PayloadType)
Invalidate cached lane/DataChannel for given payload type.
Used when the underlying DataChannel has transitioned to Closed and needs
to be recreated on next get_lane call.
Sourcepub async fn add_media_track(
&self,
track_id: String,
codec: &str,
media_type: &str,
) -> NetworkResult<Arc<TrackLocalStaticRTP>>
pub async fn add_media_track( &self, track_id: String, codec: &str, media_type: &str, ) -> NetworkResult<Arc<TrackLocalStaticRTP>>
Sourcepub async fn get_media_track(
&self,
track_id: &str,
) -> Option<Arc<TrackLocalStaticRTP>>
pub async fn get_media_track( &self, track_id: &str, ) -> Option<Arc<TrackLocalStaticRTP>>
Get existing media track by ID
Sourcepub async fn next_sequence_number(&self, track_id: &str) -> Option<u16>
pub async fn next_sequence_number(&self, track_id: &str) -> Option<u16>
Sourcepub async fn create_lane(
&self,
payload_type: PayloadType,
) -> NetworkResult<DataLane>
pub async fn create_lane( &self, payload_type: PayloadType, ) -> NetworkResult<DataLane>
GetorCreate MediaTrack Lane( carry Cache)
§Arguments
_stream_id: Media stream ID
backwardaftercompatible hold Method:create_lane adjust usage get_lane
Sourcepub async fn register_received_data_channel(
&self,
data_channel: Arc<RTCDataChannel>,
payload_type: PayloadType,
message_tx: UnboundedSender<(Vec<u8>, Bytes, PayloadType)>,
) -> NetworkResult<DataLane>
pub async fn register_received_data_channel( &self, data_channel: Arc<RTCDataChannel>, payload_type: PayloadType, message_tx: UnboundedSender<(Vec<u8>, Bytes, PayloadType)>, ) -> NetworkResult<DataLane>
Register received DataChannel (for passive side)
When receiving an Offer, the passive side should register DataChannels received via on_data_channel callback instead of creating new ones.
Trait Implementations§
Source§impl Clone for WebRtcConnection
impl Clone for WebRtcConnection
Source§fn clone(&self) -> WebRtcConnection
fn clone(&self) -> WebRtcConnection
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for WebRtcConnection
impl !RefUnwindSafe for WebRtcConnection
impl Send for WebRtcConnection
impl Sync for WebRtcConnection
impl Unpin for WebRtcConnection
impl !UnwindSafe for WebRtcConnection
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more