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

WebSocket WireStream transport built on A11's nghttp2/HTTP2 stack. More...

#include <cstdint>
#include <functional>
#include <memory>
#include <string>
#include <absl/base/nullability.h>
#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/http2.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::WebSocketClientOptions
 Client-side tuning for a WebSocketWireStream connection. More...
 
class  a11::net::WebSocketWireStream
 A WireStream that carries A11 traffic over a client or accepted WebSocket. More...
 
struct  a11::net::WebSocketServerOptions
 Listen address, path, and per-stream defaults for a WebSocketWireServer. More...
 
class  a11::net::WebSocketWireServer
 Accepts inbound WebSocket connections and hands each to a callback. More...
 

Namespaces

namespace  a11
 
namespace  a11::net
 

Typedefs

using a11::net::OnWebSocketStream = std::function< a11::Task(std::shared_ptr< WebSocketWireStream >)>
 Callback invoked with a fresh WireStream for each accepted connection.
 

Detailed Description

WebSocket WireStream transport built on A11's nghttp2/HTTP2 stack.

A WebSocketWireStream carries A11 WireMessage traffic over a WebSocket, and WebSocketWireServer hosts inbound connections. This is the default transport for connecting agents across a network: pick it whenever both ends can reach each other over TCP and you want a persistent bidirectional channel. Logical messages are framed over the socket by the shared ChannelWireStream layer. Delivery carries no global ordering guarantee but is synchronised on closure – a reader observes every delivered message before the stream completes.