Bug: None Change-Id: I1fdbff6e704f7e0f4d10a1b19e3a5ec0402cd88f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304760 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Henrik Boström <hbos@webrtc.org> Reviewed-by: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/main@{#40049}
43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
<!-- go/cmark -->
|
|
<!--* freshness: {owner: 'hta' reviewed: '2021-04-13'} *-->
|
|
|
|
# SctpTransport
|
|
|
|
## webrtc::SctpTransport
|
|
|
|
The [`webrtc::SctpTransport`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/pc/sctp_transport.h;l=33?q=class%20webrtc::SctpTransport) class encapsulates an SCTP association, and exposes a
|
|
few properties of this association to the WebRTC user (such as Chrome).
|
|
|
|
The SctpTransport is used to support Datachannels, as described in the [WebRTC
|
|
specification for the Peer-to-peer Data
|
|
API](https://w3c.github.io/webrtc-pc/#peer-to-peer-data-api).
|
|
|
|
The public interface ([`webrtc::SctpTransportInterface`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/api/sctp_transport_interface.h?q=webrtc::SctpTransportInterface)) exposes an observer
|
|
interface where the user can define a callback to be called whenever the state
|
|
of an SctpTransport changes; this callback is called on the network thread (as
|
|
set during PeerConnectionFactory initialization).
|
|
|
|
The implementation of this object lives in pc/sctp_transport.{h,cc}, and is
|
|
basically a wrapper around a `cricket::SctpTransportInternal`, hiding its
|
|
implementation details and APIs that shouldn't be accessed from the user.
|
|
|
|
The `webrtc::SctpTransport` is a ref counted object; it should be regarded
|
|
as owned by the PeerConnection, and will be closed when the PeerConnection
|
|
closes, but the object itself may survive longer than the PeerConnection.
|
|
|
|
## cricket::SctpTransportInternal
|
|
|
|
[`cricket::SctpTransportInternal`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/media/sctp/sctp_transport_internal.h?q=cricket::SctpTransportInternal) owns two objects: The SCTP association object
|
|
and the DTLS transport, which is the object used to send and receive messages
|
|
as emitted from or consumed by the sctp library.
|
|
|
|
It communicates state changes and events using sigslot.
|
|
|
|
See header files for details.
|
|
|
|
|
|
|
|
|
|
|
|
|