From f2fde172e1ddd86e15dbd7ee3f73fd4b23923c17 Mon Sep 17 00:00:00 2001 From: Ayndpa Date: Tue, 18 Nov 2025 21:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E7=A8=8B=E5=BA=8F=E4=BE=9D=E8=B5=96=E9=A1=B9=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E5=90=AF=E5=8A=A8/=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BB=A5=E5=A2=9E=E5=BC=BA=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- steamnet/steam_networking_manager.cpp | 21 +++++++++++++++++++++ steamnet/steam_networking_manager.h | 10 ++++++++++ 2 files changed, 31 insertions(+) diff --git a/steamnet/steam_networking_manager.cpp b/steamnet/steam_networking_manager.cpp index 5480b81..56c8863 100644 --- a/steamnet/steam_networking_manager.cpp +++ b/steamnet/steam_networking_manager.cpp @@ -224,6 +224,27 @@ bool SteamNetworkingManager::joinHost(uint64 hostID) { } } +void SteamNetworkingManager::setMessageHandlerDependencies(boost::asio::io_context& io_context, std::map>& clientMap, std::mutex& clientMutex, std::unique_ptr& server, int& localPort) { + io_context_ = &io_context; + clientMap_ = &clientMap; + clientMutex_ = &clientMutex; + server_ = &server; + localPort_ = &localPort; + messageHandler_ = new SteamMessageHandler(io_context, m_pInterface, connections, clientMap, clientMutex, connectionsMutex, server, g_isHost, localPort); +} + +void SteamNetworkingManager::startMessageHandler() { + if (messageHandler_) { + messageHandler_->start(); + } +} + +void SteamNetworkingManager::stopMessageHandler() { + if (messageHandler_) { + messageHandler_->stop(); + } +} + void SteamNetworkingManager::update() { std::lock_guard lock(connectionsMutex); for (auto& pair : userMap) { diff --git a/steamnet/steam_networking_manager.h b/steamnet/steam_networking_manager.h index fd9b344..6d21b09 100644 --- a/steamnet/steam_networking_manager.h +++ b/steamnet/steam_networking_manager.h @@ -81,9 +81,19 @@ public: HSteamNetConnection getConnection() const { return g_hConnection; } ISteamNetworkingSockets* getInterface() const { return m_pInterface; } + void setMessageHandlerDependencies(boost::asio::io_context& io_context, std::map>& clientMap, std::mutex& clientMutex, std::unique_ptr& server, int& localPort); + + // Message handler + void startMessageHandler(); + void stopMessageHandler(); + // Update user info (ping, relay status) void update(); + // For callbacks + void setHostSteamID(CSteamID id) { g_hostSteamID = id; } + CSteamID getHostSteamID() const { return g_hostSteamID; } + friend class SteamFriendsCallbacks; friend class SteamMatchmakingCallbacks;