Skip to content

Commit 2857f1a

Browse files
committed
Add rpc_ws_handler / WebSocketConnection function signature for context.
1 parent 2d51fe4 commit 2857f1a

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

src/vision/status_quo/alan_tries_a_socket_sink.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,21 @@ use log::{debug, info, warn};
3333
let (ws_sender, mut ws_receiver) = ws_stream.split();
3434
let ws_sender = Arc::new(Mutex::new(ws_sender));
3535

36-
while let Some(msg) = ws_receiver.next().await {
37-
debug!("Received new WS RPC message: {:?}", msg);
36+
async fn rpc_ws_handler(ws_stream: WebSocketConnection) {
37+
while let Some(msg) = ws_receiver.next().await {
38+
debug!("Received new WS RPC message: {:?}", msg);
3839

39-
let ws_sender = ws_sender.clone();
40+
let ws_sender = ws_sender.clone();
4041

41-
async_std::task::spawn(async move {
42-
let res = call_rpc(msg).await?;
42+
async_std::task::spawn(async move {
43+
let res = call_rpc(msg).await?;
4344

44-
match ws_sender.lock().await.send_string(res).await {
45-
Ok(_) => info!("New WS data sent."),
46-
Err(_) => warn!("WS connection closed."),
47-
};
48-
});
45+
match ws_sender.lock().await.send_string(res).await {
46+
Ok(_) => info!("New WS data sent."),
47+
Err(_) => warn!("WS connection closed."),
48+
};
49+
});
50+
}
4951
}
5052
```
5153

@@ -65,20 +67,22 @@ let ws_receiver = Arc::new(ws_receiver);
6567
let ws_stream = Arc::new(Mutex::new(ws_stream));
6668
let poller_ws_stream = ws_stream.clone();
6769

68-
async_std::task::spawn(async move {
69-
while let Some(msg) = ws_receiver.next().await {
70-
match poller_ws_stream.lock().await.send_string(msg).await {
71-
Ok(msg) => info!("New WS data sent. {:?}", msg),
72-
Err(msg) => warn!("WS connection closed. {:?}", msg),
73-
};
74-
}
75-
});
76-
77-
while let Some(msg) = ws_stream.lock().await.next().await {
70+
async fn rpc_ws_handler(ws_stream: WebSocketConnection) {
7871
async_std::task::spawn(async move {
79-
let res = call_rpc(msg).await?;
80-
ws_sender.send(res);
72+
while let Some(msg) = ws_receiver.next().await {
73+
match poller_ws_stream.lock().await.send_string(msg).await {
74+
Ok(msg) => info!("New WS data sent. {:?}", msg),
75+
Err(msg) => warn!("WS connection closed. {:?}", msg),
76+
};
77+
}
8178
});
79+
80+
while let Some(msg) = ws_stream.lock().await.next().await {
81+
async_std::task::spawn(async move {
82+
let res = call_rpc(msg).await?;
83+
ws_sender.send(res);
84+
});
85+
}
8286
}
8387
```
8488

0 commit comments

Comments
 (0)