From 58627f137e2bf648fbe065f711c297e3139c07dc Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Fri, 6 Sep 2024 11:55:33 +0200 Subject: [PATCH] Websocket Add ping pong response --- tools/websocket.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/websocket.cpp b/tools/websocket.cpp index 3a75fd5..fada36d 100644 --- a/tools/websocket.cpp +++ b/tools/websocket.cpp @@ -11,7 +11,7 @@ Websocket::Websocket(uint16_t port, std::ostream *out, std::ostream *err, m_server.get_alog().set_ostream(out); m_server.get_elog().set_ostream(err); m_server.set_access_channels(websocketpp::log::alevel::connect + websocketpp::log::alevel::disconnect); - m_server.clear_access_channels(websocketpp::log::alevel::frame_payload + websocketpp::log::alevel::frame_header); + m_server.clear_access_channels(websocketpp::log::alevel::frame_payload + websocketpp::log::alevel::frame_header + websocketpp::log::alevel::control); // Initialize Asio m_server.init_asio(); @@ -71,6 +71,12 @@ void Websocket::on_close(websocketpp::connection_hdl hdl) void Websocket::on_message(websocketpp::connection_hdl hdl, Server::message_ptr msg) { + // return pong + if (msg->get_opcode() == websocketpp::frame::opcode::PING) + { + m_server.send(hdl, msg->get_payload(), websocketpp::frame::opcode::PONG); + return; + } // queue message up for sending by processing thread { std::lock_guard guard(m_action_lock);