mirror of
https://github.com/Govor-team/Govor.git
synced 2026-07-21 19:54:55 +00:00
1.8 KiB
1.8 KiB
description, icon
| description | icon |
|---|---|
| SignalR hub for managing user online presence and notifications. | wifi |
PresenceHub
Controller Description
- Route:
hubs/presence - Authorize: Requires authenticated user with roles "Admin" or "User" (
[Authorize(Roles = "Admin, User")]).
Hub Methods
OnConnectedAsync
- Description: Invoked when a client connects, updates online status and notifies friends.
- Behavior:
- Retrieves user ID from context.
- Aborts connection if user ID is
Guid.Emptyor user does not exist. - Adds user to online store and their personal group.
- Notifies friends of user going online via
UserOnlineevent.
- Client-Side Events:
- UserOnline: Triggered for friends with payload
userId(Guid).
- UserOnline: Triggered for friends with payload
- Responses: None (connection aborted on invalid user ID).
OnDisconnectedAsync
- Description: Invoked when a client disconnects, updates offline status and notifies friends.
- Behavior:
- Retrieves user ID from context, suppressing exceptions.
- Removes user from personal group if ID is valid.
- Updates user's
WasOnlinetimestamp. - Sets user as offline in store.
- Notifies friends of user going offline via
UserOfflineevent.
- Client-Side Events:
- UserOffline: Triggered for friends with payload
userId(Guid).
- UserOffline: Triggered for friends with payload
- Responses: None.
Data Models
- N/A: No specific data models defined for hub methods.
Error Handling
- Invalid User ID: Aborts connection with logged warning if
Guid.Emptyor user not found. - Unexpected Errors: Logged, but no specific response (handled by base method).
Logging
- Logs warnings for invalid user ID on connection.
- Logs information for disconnections with user ID and connection ID.
- Logs errors for unexpected exceptions during disconnection.