fully implement KeepAlive behavior

This commit is contained in:
2024-07-21 20:59:13 +02:00
parent 36a2e67ac4
commit 92a2e53036
25 changed files with 513 additions and 61 deletions

View File

@@ -0,0 +1,25 @@
#include <server/systems/DisconnectSystem.h>
#include <server/components/Disconnect.h>
#include <server/components/EnetConnection.h>
#include <server/Server.h>
namespace blitz {
namespace server {
DisconectSystem::DisconectSystem(entt::registry& a_Registry, Server& a_Server) : m_Registry(a_Registry), m_Server(a_Server) {}
void DisconectSystem::Update(Nz::Time elapsedTime) {
m_Registry.view<EnetConnectionComponent, DisconnectComponent>().each(
[this](auto entity, EnetConnectionComponent& connection, DisconnectComponent disconnect) {
m_Server.CloseConnection(connection.m_Connection->GetPeerId());
});
// remove the entities
auto it = m_Registry.view<DisconnectComponent>();
m_Registry.destroy(it.begin(), it.end());
}
} // namespace server
} // namespace blitz