pub struct OnlineManager { /* private fields */ }Expand description
Online user manager 在线用户管理器
Manages online users and handles real-time message pushing 管理在线用户并处理实时消息推送
Implementations§
Source§impl OnlineManager
impl OnlineManager
Sourcepub fn new() -> OnlineManager
pub fn new() -> OnlineManager
Sourcepub async fn register_pusher(&self, pusher: Arc<dyn MessagePusher>)
pub async fn register_pusher(&self, pusher: Arc<dyn MessagePusher>)
Sourcepub async fn mark_online(&self, user: OnlineUser)
pub async fn mark_online(&self, user: OnlineUser)
Mark a user as online 标记用户上线
§Arguments | 参数
user- Online user information | 在线用户信息
§Example | 示例
ⓘ
let user = OnlineUser {
login_id: "user123".to_string(),
token: "token123".to_string(),
device: "web".to_string(),
connect_time: Utc::now(),
last_activity: Utc::now(),
metadata: HashMap::new(),
};
manager.mark_online(user).await;Sourcepub async fn mark_offline(&self, login_id: &str, token: &str)
pub async fn mark_offline(&self, login_id: &str, token: &str)
Sourcepub async fn mark_offline_all(&self, login_id: &str)
pub async fn mark_offline_all(&self, login_id: &str)
Sourcepub async fn get_online_count(&self) -> usize
pub async fn get_online_count(&self) -> usize
Sourcepub async fn get_online_users(&self) -> Vec<String>
pub async fn get_online_users(&self) -> Vec<String>
Sourcepub async fn get_user_sessions(&self, login_id: &str) -> Vec<OnlineUser>
pub async fn get_user_sessions(&self, login_id: &str) -> Vec<OnlineUser>
Sourcepub async fn update_activity(&self, login_id: &str, token: &str)
pub async fn update_activity(&self, login_id: &str, token: &str)
Sourcepub async fn push_to_user(
&self,
login_id: &str,
content: String,
) -> Result<(), SaTokenError>
pub async fn push_to_user( &self, login_id: &str, content: String, ) -> Result<(), SaTokenError>
Sourcepub async fn push_to_users(
&self,
login_ids: Vec<String>,
content: String,
) -> Result<(), SaTokenError>
pub async fn push_to_users( &self, login_ids: Vec<String>, content: String, ) -> Result<(), SaTokenError>
Sourcepub async fn push_message_to_user(
&self,
login_id: &str,
message: PushMessage,
) -> Result<(), SaTokenError>
pub async fn push_message_to_user( &self, login_id: &str, message: PushMessage, ) -> Result<(), SaTokenError>
Push a custom message to a user 向用户推送自定义消息
§Arguments | 参数
login_id- User login ID | 用户登录 IDmessage- Custom push message | 自定义推送消息
§Example | 示例
ⓘ
let message = PushMessage {
message_id: uuid::Uuid::new_v4().to_string(),
content: "Custom content".to_string(),
message_type: MessageType::Custom("event".to_string()),
timestamp: Utc::now(),
metadata: HashMap::new(),
};
manager.push_message_to_user("user123", message).await?;Sourcepub async fn kick_out_notify(
&self,
login_id: &str,
reason: String,
) -> Result<(), SaTokenError>
pub async fn kick_out_notify( &self, login_id: &str, reason: String, ) -> Result<(), SaTokenError>
Trait Implementations§
Source§impl Default for OnlineManager
impl Default for OnlineManager
Source§fn default() -> OnlineManager
fn default() -> OnlineManager
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for OnlineManager
impl !RefUnwindSafe for OnlineManager
impl Send for OnlineManager
impl Sync for OnlineManager
impl Unpin for OnlineManager
impl !UnwindSafe for OnlineManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more