fix: use redis aio
This commit is contained in:
parent
0df2cd7b56
commit
ecde5d3d46
6 changed files with 240 additions and 30 deletions
|
@ -187,14 +187,14 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
let dbc = db.clone();
|
||||
let mut redis_task = tokio::spawn(async move {
|
||||
// forward messages from redis to the socket
|
||||
let mut con = dbc.2.get_con().await;
|
||||
let mut pubsub = con.as_pubsub();
|
||||
let mut pubsub = dbc.2.client.get_async_pubsub().await.unwrap();
|
||||
|
||||
pubsub.subscribe(user.id).unwrap();
|
||||
pubsub.subscribe(community_id.clone()).unwrap();
|
||||
pubsub.subscribe(user.id).await.unwrap();
|
||||
pubsub.subscribe(community_id.clone()).await.unwrap();
|
||||
|
||||
// listen for pubsub messages
|
||||
while let Ok(msg) = pubsub.get_message() {
|
||||
let mut pubsub = pubsub.into_on_message();
|
||||
while let Some(msg) = pubsub.next().await {
|
||||
// payload is a stringified SocketMessage
|
||||
let smsg = msg.get_payload::<String>().unwrap();
|
||||
let packet: SocketMessage = serde_json::from_str(&smsg).unwrap();
|
||||
|
@ -241,7 +241,7 @@ pub async fn handle_socket(socket: WebSocket, db: DataManager, community_id: Str
|
|||
let db2c = db.2.clone();
|
||||
let heartbeat_task = tokio::spawn(async move {
|
||||
let mut con = db2c.get_con().await;
|
||||
let mut heartbeat = tokio::time::interval(Duration::from_secs(30));
|
||||
let mut heartbeat = tokio::time::interval(Duration::from_secs(10));
|
||||
|
||||
loop {
|
||||
con.publish::<usize, String, ()>(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue