core: allow setting max ws rpc connections (#2632)

* core: allow setting max ws rpc connections

* style: break long lines

* core: fix service tests
This commit is contained in:
André Silva
2019-05-23 10:50:36 +01:00
committed by Gavin Wood
parent 12f052ce9d
commit 563a67b8e4
7 changed files with 42 additions and 7 deletions
+6 -1
View File
@@ -24,9 +24,12 @@ use std::io;
use log::error;
use sr_primitives::{traits::{Block as BlockT, NumberFor}, generic::SignedBlock};
/// Maximal payload accepted by RPC servers
/// Maximal payload accepted by RPC servers.
const MAX_PAYLOAD: usize = 15 * 1024 * 1024;
/// Default maximum number of connections for WS RPC servers.
const WS_MAX_CONNECTIONS: usize = 100;
type Metadata = apis::metadata::Metadata;
type RpcHandler = pubsub::PubSubHandler<Metadata>;
pub type HttpServer = http::Server;
@@ -76,11 +79,13 @@ pub fn start_http(
/// Start WS server listening on given address.
pub fn start_ws(
addr: &std::net::SocketAddr,
max_connections: Option<usize>,
cors: Option<&Vec<String>>,
io: RpcHandler,
) -> io::Result<ws::Server> {
ws::ServerBuilder::with_meta_extractor(io, |context: &ws::RequestContext| Metadata::new(context.sender()))
.max_payload(MAX_PAYLOAD)
.max_connections(max_connections.unwrap_or(WS_MAX_CONNECTIONS))
.allowed_origins(map_cors(cors))
.start(addr)
.map_err(|err| match err {