diff options
| author | Osmium Sorcerer <os@sof.beauty> | 2026-03-22 18:56:58 +0000 |
|---|---|---|
| committer | Osmium Sorcerer <os@sof.beauty> | 2026-03-29 22:22:25 +0000 |
| commit | d6352bc889638b82a887e0a1a138f2b8086dbbdb (patch) | |
| tree | 35f7bb8b5b6641f69930bd8485260bc8594e5fe9 /src/networkmanager.cpp | |
| parent | a124f46861d549ddc13485536962e34d80de939a (diff) | |
Handle extension packets using binary frames
The subprotocol shall use binary frames, and AO protocol stays separated
within the text frames.
Diffstat (limited to 'src/networkmanager.cpp')
| -rw-r--r-- | src/networkmanager.cpp | 30 |
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); |
