OSSIA
Open Scenario System for Interactive Application
Loading...
Searching...
No Matches
ossia::net::websocket_client Class Reference

Low-level Websocket client. More...

Detailed Description

Low-level Websocket client.

Public Types

using connection_handler = websocketpp::connection_hdl

Public Member Functions

void init_client ()
template<typename MessageHandler>
 websocket_client (MessageHandler &&onMessage)
template<typename MessageHandler>
 websocket_client (boost::asio::io_context &ctx, MessageHandler &&onMessage)
bool connected () const
void stop ()
auto & client ()
auto & handle ()
bool after_connect ()
void connect (const std::string &uri)
void finish_connection ()
void connect_and_run (const std::string &uri)
void send_message (const std::string &request)
void send_message (const rapidjson::StringBuffer &request)
void send_binary_message (std::string_view request)
boost::asio::io_context & context () noexcept

Public Attributes

Nano::Signal< void()> on_open
Nano::Signal< void()> on_close
Nano::Signal< void()> on_fail

Protected Types

using client_t = websocketpp::client<websocketpp::config::asio_client>
using scoped_lock = websocketpp::lib::lock_guard<websocketpp::lib::mutex>

Protected Attributes

boost::asio::io_context * m_ctx {}
std::shared_ptr< client_t > m_client
connection_handler m_hdl
websocketpp::lib::mutex m_lock
std::atomic_bool m_open {false}
std::atomic_bool m_connected {false}

Constructor & Destructor Documentation

◆ websocket_client()

template<typename MessageHandler>
ossia::net::websocket_client::websocket_client ( MessageHandler && onMessage)
inline
Template Parameters
Functionthat will be called when the client receives a server message.