Define TCP server that will accept incoming TCP connection and create chat actors.
(_s: &str, server: Addr<ChatServer>)
| 178 | /// Define TCP server that will accept incoming TCP connection and create |
| 179 | /// chat actors. |
| 180 | pub fn tcp_server(_s: &str, server: Addr<ChatServer>) { |
| 181 | // Create server listener |
| 182 | let addr = net::SocketAddr::from_str("127.0.0.1:12345").unwrap(); |
| 183 | |
| 184 | spawn(async move { |
| 185 | let listener = TcpListener::bind(&addr).await.unwrap(); |
| 186 | |
| 187 | while let Ok((stream, _)) = listener.accept().await { |
| 188 | let server = server.clone(); |
| 189 | ChatSession::create(|ctx| { |
| 190 | let (r, w) = split(stream); |
| 191 | ChatSession::add_stream(FramedRead::new(r, ChatCodec), ctx); |
| 192 | ChatSession::new(server, actix::io::FramedWrite::new(w, ChatCodec, ctx)) |
| 193 | }); |
| 194 | } |
| 195 | }); |
| 196 | } |