summaryrefslogtreecommitdiff
path: root/src/discord/websocket.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-11-15 02:14:49 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2022-11-15 02:15:21 -0500
commit929ebf1a6008d861473e3ceffd11cd4eca90d620 (patch)
treeae6c1bf426e0cbe258b9dfc79435f3e4e1256642 /src/discord/websocket.cpp
parent38c5230a1d194cb2fc4cf36fb6b417fdefb32788 (diff)
downloadabaddon-portaudio-929ebf1a6008d861473e3ceffd11cd4eca90d620.tar.gz
abaddon-portaudio-929ebf1a6008d861473e3ceffd11cd4eca90d620.zip
mess with some websocket stuff to try and fix things
to be honest, im not sure what ive done here. whatever memory i have of the issue i was trying to fix has long disappeared by the time im committing this. theres still some issues with being force disconnected and i really dont understand it ill figure it out eventually... maybe :/
Diffstat (limited to 'src/discord/websocket.cpp')
-rw-r--r--src/discord/websocket.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/discord/websocket.cpp b/src/discord/websocket.cpp
index cf0111c..349913a 100644
--- a/src/discord/websocket.cpp
+++ b/src/discord/websocket.cpp
@@ -1,19 +1,25 @@
#include "websocket.hpp"
+#include <spdlog/sinks/stdout_color_sinks.h>
#include <utility>
-Websocket::Websocket()
- : m_close_code(ix::WebSocketCloseConstants::kNormalClosureCode) {
+Websocket::Websocket(const std::string &id)
+ : m_close_info { 1000, "Normal", false } {
+ if (m_log = spdlog::get(id); !m_log) {
+ m_log = spdlog::stdout_color_mt(id);
+ }
+
m_open_dispatcher.connect([this]() {
m_signal_open.emit();
});
m_close_dispatcher.connect([this]() {
Stop();
- m_signal_close.emit(m_close_code);
+ m_signal_close.emit(m_close_info);
});
}
void Websocket::StartConnection(const std::string &url) {
+ m_log->debug("Starting connection to {}", url);
m_websocket.disableAutomaticReconnection();
m_websocket.setUrl(url);
m_websocket.setOnMessageCallback([this](auto &&msg) { OnMessage(std::forward<decltype(msg)>(msg)); });
@@ -34,16 +40,18 @@ void Websocket::SetPrintMessages(bool show) noexcept {
}
void Websocket::Stop() {
+ m_log->debug("Stopping with default close code");
Stop(ix::WebSocketCloseConstants::kNormalClosureCode);
}
void Websocket::Stop(uint16_t code) {
+ m_log->debug("Stopping with close code {}", code);
m_websocket.stop(code);
}
void Websocket::Send(const std::string &str) {
if (m_print_messages)
- printf("sending %s\n", str.c_str());
+ m_log->trace("Send: {}", str);
m_websocket.sendText(str);
}
@@ -54,10 +62,12 @@ void Websocket::Send(const nlohmann::json &j) {
void Websocket::OnMessage(const ix::WebSocketMessagePtr &msg) {
switch (msg->type) {
case ix::WebSocketMessageType::Open: {
+ m_log->debug("Received open frame, dispatching");
m_open_dispatcher.emit();
} break;
case ix::WebSocketMessageType::Close: {
- m_close_code = msg->closeInfo.code;
+ m_log->debug("Received close frame, dispatching. {} ({}){}", msg->closeInfo.code, msg->closeInfo.reason, msg->closeInfo.remote ? " Remote" : "");
+ m_close_info = msg->closeInfo;
m_close_dispatcher.emit();
} break;
case ix::WebSocketMessageType::Message: {