20auto generate_unique_id(std::string_view prefix) -> std::string
22 static std::atomic<uint64_t>
counter{0};
23 auto now = std::chrono::steady_clock::now().time_since_epoch().count();
24 auto count =
counter.fetch_add(1);
26 std::ostringstream oss;
27 oss << prefix <<
"-" << now <<
"-" << count;
35 std::string connection_id =
id.empty() ? generate_unique_id(
"ws-conn") : std::string(
id);
36 return std::make_unique<unified::adapters::ws_connection_adapter>(connection_id);
39auto connect(std::string_view url, std::string_view
id)
40 -> std::unique_ptr<unified::i_connection>
43 (void)conn->connect(url);
48 std::string_view path,
50 -> std::unique_ptr<unified::i_connection>
52 std::string connection_id =
id.empty() ? generate_unique_id(
"ws-conn") : std::string(
id);
53 auto adapter = std::make_unique<unified::adapters::ws_connection_adapter>(connection_id);
54 adapter->set_path(path);
55 (void)adapter->connect(endpoint);
61 std::string listener_id =
id.empty() ? generate_unique_id(
"ws-listener") : std::string(
id);
62 return std::make_unique<unified::adapters::ws_listener_adapter>(listener_id);
66 std::string_view path,
68 -> std::unique_ptr<unified::i_listener>
70 std::string listener_id =
id.empty() ? generate_unique_id(
"ws-listener") : std::string(
id);
71 auto adapter = std::make_unique<unified::adapters::ws_listener_adapter>(listener_id);
72 adapter->set_path(path);
73 (void)adapter->start(bind_address);
77auto listen(uint16_t port, std::string_view path, std::string_view
id)
78 -> std::unique_ptr<unified::i_listener>
auto create_connection(std::string_view id="") -> std::unique_ptr< unified::i_connection >
Creates a WebSocket connection (not yet started)
auto listen(const unified::endpoint_info &bind_address, std::string_view path="/", std::string_view id="") -> std::unique_ptr< unified::i_listener >
Creates and starts a WebSocket listener in one call.
auto create_listener(std::string_view id="") -> std::unique_ptr< unified::i_listener >
Creates a WebSocket listener (not yet listening)
auto connect(std::string_view url, std::string_view id="") -> std::unique_ptr< unified::i_connection >
Creates and starts a WebSocket connection in one call.
Network endpoint information (host/port or URL)
WebSocket protocol connection factory functions.