# Pastebin qqPX92mx #include #include #include #include #include #include #include using namespace std; using tcp = boost::asio::ip::tcp; namespace websocket = boost::beast::websocket; class WSConnection { private: static WSConnection *ws_conn; WSConnection(std::string host, std::string port) { auto const results = resolver.resolve(host, port); boost::asio::connect(ws.next_layer(), results.begin(), results.end()); ws.handshake(host, "/"); } boost::asio::io_context ioc; tcp::resolver resolver { ioc }; websocket::stream ws { ioc }; public: static WSConnection* getInstance(std::string host, std::string port) { if (ws_conn == NULL) ws_conn = new WSConnection(host, port); return ws_conn; } auto getWSConnectionObject(){ return ws; } ~WSConnection() { ws.close(websocket::close_code::normal); } };