添加消息处理程序依赖项设置和启动/停止功能,以增强网络消息处理能力
This commit is contained in:
@@ -224,6 +224,27 @@ bool SteamNetworkingManager::joinHost(uint64 hostID) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SteamNetworkingManager::setMessageHandlerDependencies(boost::asio::io_context& io_context, std::map<HSteamNetConnection, std::shared_ptr<TCPClient>>& clientMap, std::mutex& clientMutex, std::unique_ptr<TCPServer>& 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() {
|
void SteamNetworkingManager::update() {
|
||||||
std::lock_guard<std::mutex> lock(connectionsMutex);
|
std::lock_guard<std::mutex> lock(connectionsMutex);
|
||||||
for (auto& pair : userMap) {
|
for (auto& pair : userMap) {
|
||||||
|
|||||||
@@ -81,9 +81,19 @@ public:
|
|||||||
HSteamNetConnection getConnection() const { return g_hConnection; }
|
HSteamNetConnection getConnection() const { return g_hConnection; }
|
||||||
ISteamNetworkingSockets* getInterface() const { return m_pInterface; }
|
ISteamNetworkingSockets* getInterface() const { return m_pInterface; }
|
||||||
|
|
||||||
|
void setMessageHandlerDependencies(boost::asio::io_context& io_context, std::map<HSteamNetConnection, std::shared_ptr<TCPClient>>& clientMap, std::mutex& clientMutex, std::unique_ptr<TCPServer>& server, int& localPort);
|
||||||
|
|
||||||
|
// Message handler
|
||||||
|
void startMessageHandler();
|
||||||
|
void stopMessageHandler();
|
||||||
|
|
||||||
// Update user info (ping, relay status)
|
// Update user info (ping, relay status)
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
// For callbacks
|
||||||
|
void setHostSteamID(CSteamID id) { g_hostSteamID = id; }
|
||||||
|
CSteamID getHostSteamID() const { return g_hostSteamID; }
|
||||||
|
|
||||||
friend class SteamFriendsCallbacks;
|
friend class SteamFriendsCallbacks;
|
||||||
friend class SteamMatchmakingCallbacks;
|
friend class SteamMatchmakingCallbacks;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user