aboutsummaryrefslogtreecommitdiff
path: root/src/networkmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/networkmanager.cpp')
-rw-r--r--src/networkmanager.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp
index 779dc1e..fa7aa16 100644
--- a/src/networkmanager.cpp
+++ b/src/networkmanager.cpp
@@ -159,6 +159,7 @@ void NetworkManager::connect_to_server(ServerInfo server)
connect(m_connection, &WebSocketConnection::disconnectedFromServer, ao_app, &AOApplication::server_disconnected);
connect(m_connection, &WebSocketConnection::errorOccurred, this, [](QString error) { qCritical() << "Connection error:" << error; });
connect(m_connection, &WebSocketConnection::receivedPacket, this, &NetworkManager::handle_server_packet);
+ connect(m_connection, &WebSocketConnection::receivedExMessage, this, &NetworkManager::handle_ex_message);
m_connection->connectToServer(server);
}
@@ -192,6 +193,27 @@ void NetworkManager::ship_server_packet(AOPacket packet)
m_connection->sendPacket(packet);
}
+void NetworkManager::ship_ex_message(const QByteArray &msg)
+{
+ if (!m_connection)
+ {
+ qCritical() << "Failed to ship packet; no connection.";
+ return;
+ }
+
+ if (!m_connection->isConnected())
+ {
+ qCritical() << "Failed to ship packet; not connected.";
+ return;
+ }
+
+ // TODO: Diagnostic notation
+#ifdef NETWORK_DEBUG
+ qInfo().noquote() << "Sending message:" << msg.toHex(' ');
+#endif
+ m_connection->sendExMessage(msg);
+}
+
void NetworkManager::join_to_server()
{
ship_server_packet(AOPacket("askchaa"));
@@ -205,6 +227,14 @@ void NetworkManager::handle_server_packet(AOPacket packet)
ao_app->server_packet_received(packet);
}
+void NetworkManager::handle_ex_message(QByteArray message)
+{
+#ifdef NETWORK_DEBUG
+ qInfo().noquote() << "Received message:" << message.toHex(' ');
+#endif
+ ao_app->ex_message_received(message);
+}
+
QNetworkReply *NetworkManager::get_audio_url(const QUrl &url)
{
QNetworkRequest req(url);