This commit is contained in:
2026-08-16 13:00:29 +02:00
parent e6d6968e52
commit 7fc8edd1d0
71 changed files with 2359 additions and 448 deletions
+9 -4
View File
@@ -6,6 +6,7 @@ use crate::routes::category::mapper::category_model_to_category_response;
use crate::routes::channel::mapper::channel_model_to_channel_response;
use crate::routes::message::mapper::message_model_to_message_response_with_server_id;
use crate::routes::server::mapper::server_model_to_server_response;
use crate::services::Services;
use axum::extract::ws::Message;
use event_bus::EventBus;
use events::GatewayEvent;
@@ -15,7 +16,6 @@ use std::sync::Arc;
use tokio::sync::mpsc;
use tokio::task::JoinHandle;
use uuid::Uuid;
use crate::services::Services;
pub mod events;
pub mod handlers;
@@ -44,7 +44,10 @@ pub struct GatewayClient {
impl GatewayManager {
pub fn new(services: Arc<Services>) -> Self {
Self { clients: RwLock::new(HashMap::new()), services }
Self {
clients: RwLock::new(HashMap::new()),
services,
}
}
/// Démarre les routeurs centraux des événements de messages.
pub fn start(self: &Arc<Self>, event_bus: Arc<EventBus>) {
@@ -95,7 +98,6 @@ impl GatewayManager {
pub(crate) fn remove_client(&self, gateway_client: &GatewayClient) {
let key = gateway_client.key();
self.clients.write().remove(&key);
}
fn broadcast_message<T: serde::Serialize>(
@@ -113,7 +115,10 @@ impl GatewayManager {
return;
};
let users = self.services.realtime_registry.users_for_channel(channel_id);
let users = self
.services
.realtime_registry
.users_for_channel(channel_id);
let clients = self.clients.read();
for (key, client) in clients.iter() {
if users.contains(&key.user_id) {
+1 -1
View File
@@ -1,7 +1,7 @@
use super::handlers;
use crate::core::AppState;
use axum::routing::get;
use axum::Router;
use axum::routing::get;
pub fn router() -> Router<AppState> {
Router::new().route("/gateway", get(handlers::ws_handler))