Skip to content

Commit

Permalink
add a new example for proxy.
Browse files Browse the repository at this point in the history
  • Loading branch information
jjeffcaii committed Sep 6, 2019
1 parent 0c35f28 commit d91012a
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 2 deletions.
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@ hex = "0.3.2"
[[example]]
name = "echo"
path = "examples/echo/main.rs"

[[example]]
name = "proxy"
path = "examples/proxy/main.rs"
31 changes: 31 additions & 0 deletions examples/proxy/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#[macro_use]
extern crate log;
extern crate rsocket_rust;
extern crate tokio;

use rsocket_rust::prelude::*;

fn main() {
env_logger::builder()
.default_format_timestamp_nanos(true)
.init();
let server = RSocketFactory::receive()
.acceptor(|setup, _sending_socket| {
info!("incoming socket: setup={:?}", setup);
proxied(URI::Tcp("127.0.0.1:7878"))
})
.transport(URI::Tcp("127.0.0.1:7979"))
.serve();
tokio::run(server);
}

fn proxied(target: URI) -> Box<dyn RSocket> {
Box::new(
RSocketFactory::connect()
.acceptor(|| Box::new(MockResponder))
.setup(Payload::from("I'm Rust!"))
.transport(target)
.start()
.unwrap(),
)
}
6 changes: 5 additions & 1 deletion src/transport/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ use futures::sync::mpsc;
use futures::{lazy, Future, Sink, Stream};
use std::io;
use std::net::SocketAddr;
use std::net::TcpStream as StdTcpStream;
use tokio::codec::Framed;
use tokio::net::TcpStream;
use tokio::reactor::Handle;

pub fn from_addr(addr: &SocketAddr) -> Context {
let socket = TcpStream::connect(addr).wait().unwrap();
let origin = StdTcpStream::connect(addr).unwrap();
let socket = TcpStream::from_std(origin, &Handle::default()).unwrap();
// let socket = TcpStream::connect(addr).wait().unwrap();
from_socket(socket)
}

Expand Down
1 change: 0 additions & 1 deletion tests/client_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fn test_client() {
.mime_type("text/plain", "text/plain")
.start()
.unwrap();

for n in 0..11 {
let pa = Payload::builder()
.set_data_utf8("Hello World!")
Expand Down

0 comments on commit d91012a

Please sign in to comment.