A11 (C++ runtime)
Native C++ implementation of the A11 action and streaming runtime
Loading...
Searching...
No Matches
webrtc_wire_stream.h File Reference

WireStream transport over a WebRTC data channel (libdatachannel). More...

#include <cstddef>
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include <absl/status/status.h>
#include <absl/status/statusor.h>
#include "a11/concurrency/future.h"
#include "a11/net/channel_wire_stream.h"
#include "a11/net/signalling.h"
#include "a11/net/wire_stream.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  a11::net::TurnServer
 Address and credentials for a TURN relay used during ICE. More...
 
struct  a11::net::WebRtcConfiguration
 ICE, fragmentation, and binding settings for a WebRTC connection. More...
 
class  a11::net::WebRtcWireStream
 A WireStream that carries A11 traffic over a WebRTC data channel. More...
 
class  a11::net::WebRtcWireServer
 Accepts incoming WebRTC peer connections under a fixed identity. More...
 

Namespaces

namespace  rtc
 
namespace  a11
 
namespace  a11::net
 

Typedefs

using a11::net::OnWebRtcStream = std::function< a11::Task(std::shared_ptr< WebRtcWireStream >)>
 Callback invoked with each newly negotiated peer WireStream.
 

Enumerations

enum class  a11::net::TurnRelayType { a11::net::kUdp , a11::net::kTcp , a11::net::kTls }
 Transport used to reach a TURN relay server. More...
 

Detailed Description

WireStream transport over a WebRTC data channel (libdatachannel).

A WebRtcWireStream carries A11 WireMessage traffic over a WebRTC SCTP data channel, enabling peer-to-peer connections including NAT traversal via STUN and TURN. Pick it when peers must reach each other directly without a shared server on the data path. It relies on a signalling channel (see signalling.h) to exchange SDP offers/answers and ICE candidates before the peer connection is established. Large logical messages are fragmented by the ChannelWireStream layer before reaching SCTP. Delivery carries no global ordering guarantee but is synchronised on closure – a reader observes every delivered message before the stream completes.