rsiot/components/cmp_websocket_server/mod.rs
1//! Компонент для подключения через websocket server.
2//!
3//! Перенаправляет поток входящих сообщений подключенным вебсокет-клиентам.
4//!
5//! При подключении клиенту отправляются все актуальные сообщения из кеша, далее только новые.
6//! Используется библиотека [tokio-tungstenite](https://crates.io/crates/tokio-tungstenite).
7//!
8//! # Пример
9//!
10//! ## Файл `shared::ws_client_server/client_to_server.rs`
11//! ```
12#![doc = include_str!("doc/client_to_server.rs")]
13//!```
14//!
15//! ## Файл `shared::ws_client_server/server_to_client.rs`
16//! ```
17#![doc = include_str!("doc/server_to_client.rs")]
18//!```
19//!
20//! ## Файл `cmp_websocket_server/mod.rs`
21//! ```
22#![doc = include_str!("doc/new.rs")]
23//! ```
24
25mod component;
26mod config;
27#[cfg(feature = "rustdoc")]
28mod doc;
29mod errors;
30mod fn_process;
31mod tasks;
32
33pub use {
34 component::{COMPONENT_NAME, Cmp},
35 config::{Config, WsData},
36 errors::Error,
37};
38
39type Result<T> = std::result::Result<T, errors::Error>;
40
41type ServerToClientCache<TServerToClient> = std::sync::Arc<
42 tokio::sync::Mutex<std::collections::HashMap<String, config::WsData<TServerToClient>>>,
43>;