1#ifndef PLOTLY_DETAILS_WEBSOCKETS_SERVER_HPP
2#define PLOTLY_DETAILS_WEBSOCKETS_SERVER_HPP
4#include "websocketpp/config/asio_no_tls.hpp"
5#include "websocketpp/roles/server_endpoint.hpp"
12using server_t = websocketpp::server<server_config>;
25 auto serve(std::string_view address,
int port) -> bool;
32 auto
waitConnection(std::chrono::milliseconds timeout) const ->
bool override;
34 auto
send(const std::string_view &message) ->
bool override;
35 auto
getName() const -> std::
string override;
41 mutable std::condition_variable _connectedCv;
42 mutable std::mutex _connectionStateMutex;
46 std::promise<
int> _portPromise;
47 mutable std::shared_future<
int> _portFuture;
48 std::thread _serviceThread;
50 void setupServerHandlers();
Base implementation class for WebSocket endpoints.
Definition websockets_endpoint.hpp:157
auto waitConnection(std::chrono::milliseconds timeout) const -> bool override
Wait for a connection to be established.
Definition websockets_server.cpp:127
auto serve(std::string_view address, int port) -> bool
Definition websockets_server.cpp:42
~WebsocketServer()
Definition websockets_server.cpp:32
WebsocketServer(const WebsocketServer &)=delete
void stop() override
Stop the endpoint and clean up resources.
Definition websockets_server.cpp:81
auto getName() const -> std::string override
Get the name/identifier of this endpoint.
Definition websockets_server.cpp:158
auto hasClient() const -> bool
Definition websockets_server.cpp:74
WebsocketServer(WebsocketServer &&)=delete
void serviceLoop() override
Pure virtual method for the main service loop.
Definition websockets_server.cpp:34
auto send(const std::string_view &message) -> bool override
Send a message through the WebSocket connection.
Definition websockets_server.cpp:139
auto getPort() const -> int
Definition websockets_server.cpp:79
auto isConnected() const -> bool override
Check if the endpoint is currently connected.
Definition websockets_server.cpp:134
void waitUntilNoClient() const
Definition websockets_server.cpp:89
auto operator=(WebsocketServer &&) -> WebsocketServer &=delete
auto operator=(const WebsocketServer &) -> WebsocketServer &=delete
WebsocketServer()
Definition websockets_server.cpp:19
Definition browser.cpp:27
server_t endpoint_t
Definition websockets_server.hpp:14
websocketpp::connection_hdl connection_hdl
Definition websockets_client.hpp:12
websocketpp::server< server_config > server_t
Definition websockets_server.hpp:12
websocketpp::config::asio server_config
Definition websockets_server.hpp:11
WebSocket endpoint interface and implementation for plotly.cpp.