From a0ece884d0aca84597f9dba7d42108d4bb847963 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 16 Nov 2020 03:08:56 -0500 Subject: fix heartbeat breaking after resume, make websocket use sigc --- discord/websocket.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'discord/websocket.cpp') diff --git a/discord/websocket.cpp b/discord/websocket.cpp index 196e7bb..2dc4ad0 100644 --- a/discord/websocket.cpp +++ b/discord/websocket.cpp @@ -23,10 +23,6 @@ bool Websocket::IsOpen() const { return state == ix::ReadyState::Open; } -void Websocket::SetMessageCallback(MessageCallback_t func) { - m_callback = func; -} - void Websocket::Send(const std::string &str) { printf("sending %s\n", str.c_str()); m_websocket.sendText(str); @@ -38,9 +34,26 @@ 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(); + } break; + case ix::WebSocketMessageType::Close: { + m_signal_close.emit(msg->closeInfo.code); + } break; case ix::WebSocketMessageType::Message: { - if (m_callback) - m_callback(msg->str); + m_signal_message.emit(msg->str); } break; } } + +Websocket::type_signal_open Websocket::signal_open() { + return m_signal_open; +} + +Websocket::type_signal_close Websocket::signal_close() { + return m_signal_close; +} + +Websocket::type_signal_message Websocket::signal_message() { + return m_signal_message; +} -- cgit v1.2.3