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

Out-of-band signalling used to negotiate WebRTC peer connections. More...

#include <functional>
#include <memory>
#include <string>
#include <string_view>
#include <vector>
#include <absl/status/status.h>
#include <absl/status/statusor.h>
#include "a11/concurrency/future.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  a11::net::SignallingMessage
 One signalling payload: an SDP description, an ICE candidate, or an error. More...
 
class  a11::net::SignallingTransport
 Abstract identity-bound channel over which signalling flows. More...
 
class  a11::net::SignallingEndpoint
 An identity-bound endpoint into an in-process SignallingService. More...
 
class  a11::net::SignallingService
 An in-process broker that routes signalling messages by identity. More...
 

Namespaces

namespace  a11
 
namespace  a11::net
 

Typedefs

using a11::net::OnSignallingMessage = std::function< a11::Task(SignallingMessage message)>
 Async callback invoked for each inbound SignallingMessage.
 

Enumerations

enum class  a11::net::SignallingMessageType { a11::net::kDescription , a11::net::kCandidate , a11::net::kError }
 The kind of payload a SignallingMessage carries. More...
 

Detailed Description

Out-of-band signalling used to negotiate WebRTC peer connections.

Signalling is the handshake that lets two peers find each other and agree on how to connect before a data transport exists – chiefly to exchange the SDP offers/answers and ICE candidates a WebRtcWireStream needs. A SignallingService routes SignallingMessage values between identity-bound SignallingEndpoints in one process; SignallingTransport is the abstract channel a WebRTC stream negotiates over, with a WebSocket-backed implementation in websocket_signalling.h for peers on different machines. This is not itself a WireStream transport – it carries control messages, not A11 WireMessage traffic.