@@ -33,19 +33,21 @@ use log::{debug, info, warn};
33
33
let (ws_sender , mut ws_receiver ) = ws_stream . split ();
34
34
let ws_sender = Arc :: new (Mutex :: new (ws_sender ));
35
35
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 );
38
39
39
- let ws_sender = ws_sender . clone ();
40
+ let ws_sender = ws_sender . clone ();
40
41
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 ? ;
43
44
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
+ }
49
51
}
50
52
```
51
53
@@ -65,20 +67,22 @@ let ws_receiver = Arc::new(ws_receiver);
65
67
let ws_stream = Arc :: new (Mutex :: new (ws_stream ));
66
68
let poller_ws_stream = ws_stream . clone ();
67
69
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 ) {
78
71
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
+ }
81
78
});
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
+ }
82
86
}
83
87
```
84
88
0 commit comments