OSSIA
Open Scenario System for Interactive Application
ossia::net::websocket_client Class Reference

Low-level Websocket client. More...

Inherited by ossia::net::websocket_simple_client.

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)
 

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.