|
1 | | -#![allow(unused_variables)] |
2 | | -#![allow(unused_imports)] |
3 | | -#![allow(dead_code)] |
4 | | - |
5 | | -#[macro_use] |
6 | | -extern crate log; |
7 | | -extern crate bytes; |
8 | | -extern crate env_logger; |
9 | | -extern crate futures; |
10 | 1 | extern crate rsocket_rust; |
11 | 2 | extern crate tokio; |
12 | | - |
13 | | -use bytes::Bytes; |
14 | | -use futures::prelude::*; |
| 3 | +#[macro_use] |
| 4 | +extern crate log; |
| 5 | +use futures::{SinkExt, StreamExt}; |
| 6 | +use rsocket_rust::frame::Frame; |
15 | 7 | use rsocket_rust::prelude::*; |
| 8 | +use rsocket_rust::transport::DuplexSocket; |
| 9 | +use rsocket_rust::transport::{self, Rx, Tx}; |
| 10 | +use std::env; |
| 11 | +use std::error::Error; |
| 12 | +use std::sync::Arc; |
| 13 | +use tokio::net::TcpListener; |
| 14 | +use tokio::prelude::*; |
| 15 | +use tokio::sync::mpsc; |
| 16 | + |
| 17 | +#[tokio::main] |
| 18 | +async fn main() -> Result<(), Box<dyn Error>> { |
| 19 | + env_logger::builder().init(); |
| 20 | + RSocketFactory::receive() |
| 21 | + .transport(URI::Tcp("127.0.0.1:7878")) |
| 22 | + .acceptor(|setup, sending_socket| { |
| 23 | + info!("accept setup: {:?}", setup); |
| 24 | + Box::new(EchoRSocket) |
| 25 | + }) |
| 26 | + .serve() |
| 27 | + .await |
| 28 | + |
| 29 | + // let addr = env::args().nth(1).unwrap_or("127.0.0.1:7878".to_string()); |
| 30 | + // let mut listener = TcpListener::bind(&addr).await?; |
| 31 | + // println!("Listening on: {}", addr); |
| 32 | + |
| 33 | + // loop { |
| 34 | + // let (mut socket, _) = listener.accept().await?; |
| 35 | + // let (rcv_tx, mut rcv_rx) = mpsc::unbounded_channel::<Frame>(); |
| 36 | + // let (snd_tx, snd_rx) = mpsc::unbounded_channel::<Frame>(); |
16 | 37 |
|
17 | | -fn main() { |
18 | | - env_logger::builder() |
19 | | - .default_format_timestamp_nanos(true) |
20 | | - .init(); |
| 38 | + // tokio::spawn( |
| 39 | + // async move { rsocket_rust::transport::tcp::process(socket, snd_rx, rcv_tx).await }, |
| 40 | + // ); |
21 | 41 |
|
22 | | - let server = RSocketFactory::receive() |
23 | | - .transport(URI::Tcp("127.0.0.1:7878")) |
24 | | - .acceptor(|setup, sending_socket| { |
25 | | - info!("accept setup: {:?}", setup); |
26 | | - // TODO: use tokio runtime? |
27 | | - // std::thread::spawn(move || { |
28 | | - // let resp = sending_socket |
29 | | - // .request_response( |
30 | | - // Payload::builder() |
31 | | - // .set_data(Bytes::from("Hello Client!")) |
32 | | - // .build(), |
33 | | - // ) |
34 | | - // .wait() |
35 | | - // .unwrap(); |
36 | | - // println!(">>>>> response success: {:?}", resp); |
37 | | - // }); |
38 | | - Box::new(MockResponder) |
39 | | - }) |
40 | | - .serve(); |
41 | | - tokio::run(server); |
| 42 | + // let ds = DuplexSocket::new(0, snd_tx.clone()); |
| 43 | + // tokio::spawn(async move { |
| 44 | + // let acceptor = Acceptor::Generate(Arc::new(|setup, socket| Box::new(EchoRSocket))); |
| 45 | + // ds.event_loop(acceptor, rcv_rx).await; |
| 46 | + // }); |
| 47 | + // } |
42 | 48 | } |
0 commit comments