Struct Server

Source
pub struct Server { /* private fields */ }
Expand description

jsonrpc http server instance

Implementations§

Source§

impl Server

Source

pub fn address(&self) -> &SocketAddr

Returns address of this server

Source

pub fn close(self)

Closes the server.

Source

pub fn wait(self)

Will block, waiting for the server to finish.

Examples found in repository?
examples/http_async.rs (line 15)
4fn main() {
5	let mut io = IoHandler::default();
6	io.add_method("say_hello", |_params| {
7		futures::finished(Value::String("hello".to_owned()))
8	});
9
10	let server = ServerBuilder::new(io)
11		.cors(DomainsValidation::AllowOnly(vec![AccessControlAllowOrigin::Null]))
12		.start_http(&"127.0.0.1:3030".parse().unwrap())
13		.expect("Unable to start RPC server");
14
15	server.wait();
16}
More examples
Hide additional examples
examples/server.rs (line 15)
4fn main() {
5	let mut io = IoHandler::default();
6	io.add_method("say_hello", |_params: Params| Ok(Value::String("hello".to_string())));
7
8	let server = ServerBuilder::new(io)
9		.threads(3)
10		.rest_api(RestApi::Unsecure)
11		.cors(DomainsValidation::AllowOnly(vec![AccessControlAllowOrigin::Any]))
12		.start_http(&"127.0.0.1:3030".parse().unwrap())
13		.expect("Unable to start RPC server");
14
15	server.wait();
16}
examples/http_middleware.rs (line 24)
5fn main() {
6	let mut io = IoHandler::default();
7	io.add_method("say_hello", |_params| {
8		futures::finished(Value::String("hello".to_owned()))
9	});
10
11	let server = ServerBuilder::new(io)
12		.cors(DomainsValidation::AllowOnly(vec![AccessControlAllowOrigin::Null]))
13		.request_middleware(|request: hyper::Request<hyper::Body>| {
14			if request.uri() == "/status" {
15				Response::ok("Server running OK.").into()
16			} else {
17				request.into()
18			}
19		})
20		.rest_api(RestApi::Unsecure)
21		.start_http(&"127.0.0.1:3030".parse().unwrap())
22		.expect("Unable to start RPC server");
23
24	server.wait();
25}
examples/http_meta.rs (line 40)
11fn main() {
12	let mut io = MetaIoHandler::default();
13
14	io.add_method_with_meta("say_hello", |_params: Params, meta: Meta| {
15		let auth = meta.auth.unwrap_or_else(String::new);
16		if auth.as_str() == "let-me-in" {
17			Ok(Value::String("Hello World!".to_owned()))
18		} else {
19			Ok(Value::String(
20				"Please send a valid Bearer token in Authorization header.".to_owned(),
21			))
22		}
23	});
24
25	let server = ServerBuilder::new(io)
26		.cors_allow_headers(AccessControlAllowHeaders::Only(vec!["Authorization".to_owned()]))
27		.rest_api(RestApi::Unsecure)
28		// You can also implement `MetaExtractor` trait and pass a struct here.
29		.meta_extractor(|req: &hyper::Request<hyper::Body>| {
30			let auth = req
31				.headers()
32				.get(hyper::header::AUTHORIZATION)
33				.map(|h| h.to_str().unwrap_or("").to_owned());
34
35			Meta { auth }
36		})
37		.start_http(&"127.0.0.1:3030".parse().unwrap())
38		.expect("Unable to start RPC server");
39
40	server.wait();
41}

Trait Implementations§

Source§

impl Drop for Server

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl Freeze for Server

§

impl !RefUnwindSafe for Server

§

impl Send for Server

§

impl Sync for Server

§

impl Unpin for Server

§

impl !UnwindSafe for Server

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.