diff options
author | crowlKats <13135287+crowlKats@users.noreply.github.com> | 2020-09-05 16:39:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-05 10:39:25 -0400 |
commit | 8c880d32612c562795d8cd539c662a0cfdcbb8c8 (patch) | |
tree | 1d4df2ffb263860d0cd227cbe5dce745a5e3e2a7 /test_util/src/lib.rs | |
parent | 34e98fa59cd70f7ce64e587bef41fac536a3076b (diff) |
feat: Implement WebSocket API (#7051)
Diffstat (limited to 'test_util/src/lib.rs')
-rw-r--r-- | test_util/src/lib.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index 1f8548e34..832c40f59 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -39,6 +39,8 @@ const DOUBLE_REDIRECTS_PORT: u16 = 4548; const INF_REDIRECTS_PORT: u16 = 4549; const REDIRECT_ABSOLUTE_PORT: u16 = 4550; const HTTPS_PORT: u16 = 5545; +const WS_PORT: u16 = 4242; +const WSS_PORT: u16 = 4243; pub const PERMISSION_VARIANTS: [&str; 5] = ["read", "write", "env", "net", "run"]; @@ -135,6 +137,25 @@ pub async fn run_all_servers() { let redirect_server_fut = warp::serve(routes).bind(([127, 0, 0, 1], REDIRECT_PORT)); + let websocket_route = warp::ws().map(|ws: warp::ws::Ws| { + ws.on_upgrade(|websocket| { + use futures::stream::StreamExt; + let (tx, rx) = websocket.split(); + rx.forward(tx).map(|result| { + if let Err(e) = result { + println!("websocket server error: {:?}", e); + } + }) + }) + }); + let ws_server_fut = + warp::serve(websocket_route).bind(([127, 0, 0, 1], WS_PORT)); + let wss_server_fut = warp::serve(websocket_route) + .tls() + .cert_path("std/http/testdata/tls/localhost.crt") + .key_path("std/http/testdata/tls/localhost.key") + .bind(([127, 0, 0, 1], WSS_PORT)); + let routes = warp::path::full().map(|path: warp::path::FullPath| { let p = path.as_str(); assert_eq!(&p[0..1], "/"); @@ -426,6 +447,8 @@ pub async fn run_all_servers() { http_fut, https_fut, redirect_server_fut, + ws_server_fut, + wss_server_fut, another_redirect_server_fut, inf_redirect_server_fut, double_redirect_server_fut, |