add: user status
This commit is contained in:
parent
1724f798ca
commit
a009ef9e34
10 changed files with 259 additions and 138 deletions
|
@ -51,6 +51,8 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
let mut user: Option<User> = None;
|
||||
let mut headers: Option<SocketHeaders> = None;
|
||||
|
||||
let channel_id = format!("chats/{community_id}");
|
||||
|
||||
// handle incoming messages on socket
|
||||
let dbc = db.clone();
|
||||
if let Some(Ok(WsMessage::Text(text))) = stream.next().await {
|
||||
|
@ -185,12 +187,13 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
});
|
||||
|
||||
let dbc = db.clone();
|
||||
let channel_id_c = channel_id.clone();
|
||||
let mut redis_task = tokio::spawn(async move {
|
||||
// forward messages from redis to the socket
|
||||
let mut pubsub = dbc.2.client.get_async_pubsub().await.unwrap();
|
||||
|
||||
pubsub.subscribe(user.id).await.unwrap();
|
||||
pubsub.subscribe(community_id.clone()).await.unwrap();
|
||||
pubsub.subscribe(channel_id_c).await.unwrap();
|
||||
|
||||
// listen for pubsub messages
|
||||
let mut pubsub = pubsub.into_on_message();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue