diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-28 20:44:33 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-28 20:44:33 -0400 |
commit | a79b2d418e1a67b3af034d81fa3df09afc92329e (patch) | |
tree | c0a0ed8ed5203b0cd72607a362ad223179f5e33a /src/discord/websocket.cpp | |
parent | 0571a05497ff628ceba8c7752dc3dd4104b1e0ea (diff) | |
download | abaddon-portaudio-a79b2d418e1a67b3af034d81fa3df09afc92329e.tar.gz abaddon-portaudio-a79b2d418e1a67b3af034d81fa3df09afc92329e.zip |
synchronize ws close/open to creating thread
Diffstat (limited to 'src/discord/websocket.cpp')
-rw-r--r-- | src/discord/websocket.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/discord/websocket.cpp b/src/discord/websocket.cpp index 46a4b90..04970d3 100644 --- a/src/discord/websocket.cpp +++ b/src/discord/websocket.cpp @@ -1,7 +1,16 @@ #include "websocket.hpp" #include <utility> -Websocket::Websocket() = default; +Websocket::Websocket() + : m_close_code(ix::WebSocketCloseConstants::kNormalClosureCode) { + m_open_dispatcher.connect([this]() { + m_signal_open.emit(); + }); + + m_close_dispatcher.connect([this]() { + m_signal_close.emit(m_close_code); + }); +} void Websocket::StartConnection(const std::string &url) { m_websocket.disableAutomaticReconnection(); @@ -44,9 +53,11 @@ void Websocket::Send(const nlohmann::json &j) { void Websocket::OnMessage(const ix::WebSocketMessagePtr &msg) { switch (msg->type) { case ix::WebSocketMessageType::Open: { - m_signal_open.emit(); + m_open_dispatcher.emit(); } break; case ix::WebSocketMessageType::Close: { + m_close_code = msg->closeInfo.code; + m_close_dispatcher.emit(); m_signal_close.emit(msg->closeInfo.code); } break; case ix::WebSocketMessageType::Message: { |