File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change 1
1
use cirru_edn:: Edn ;
2
2
use std:: net:: TcpListener ;
3
- use std:: thread:: spawn;
3
+ // use std::thread::spawn;
4
4
use tungstenite:: accept;
5
5
6
6
#[ no_mangle]
7
7
pub fn serve_wss ( args : Vec < Edn > , handler : Box < dyn Fn ( Edn ) -> Edn > ) -> Result < Edn , String > {
8
8
println ! ( "args: {:?}" , args) ;
9
9
let server = TcpListener :: bind ( "127.0.0.1:9001" ) . unwrap ( ) ;
10
10
for stream in server. incoming ( ) {
11
- spawn ( move || {
12
- let mut websocket = accept ( stream. unwrap ( ) ) . unwrap ( ) ;
13
- loop {
11
+ // spawn(move || {
12
+ let mut websocket = accept ( stream. unwrap ( ) ) . unwrap ( ) ;
13
+ loop {
14
14
let msg = websocket. read_message ( ) . unwrap ( ) ;
15
15
16
16
// We do not want to send back ping/pong messages.
17
17
if msg. is_binary ( ) || msg. is_text ( ) {
18
- // let result = handler(Edn::Str(format!("{}", msg.into_text().unwrap())));
18
+ let result = handler ( Edn :: Str ( msg. into_text ( ) . unwrap ( ) . to_string ( ) ) ) ;
19
19
20
20
websocket
21
- . write_message ( tungstenite:: Message :: from ( format ! ( "{}" , "TODO" ) ) )
21
+ . write_message ( tungstenite:: Message :: from ( format ! ( "{}" , result ) ) )
22
22
. unwrap ( ) ;
23
23
}
24
24
}
25
- } ) ;
25
+ // })
26
+ ;
26
27
}
27
28
28
29
Ok ( Edn :: Nil )
You can’t perform that action at this time.
0 commit comments