From a4fb56018ec396e4d889f76cf7ef5c73fbe82cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 13 Jun 2016 18:10:33 +0200 Subject: Fix websocket example --- examples/websocket/src/websocket_app.erl | 5 +++-- test/examples_SUITE.erl | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/examples/websocket/src/websocket_app.erl b/examples/websocket/src/websocket_app.erl index 5a37227..f89882f 100644 --- a/examples/websocket/src/websocket_app.erl +++ b/examples/websocket/src/websocket_app.erl @@ -17,8 +17,9 @@ start(_Type, _Args) -> {"/static/[...]", cowboy_static, {priv_dir, websocket, "static"}} ]} ]), - {ok, _} = cowboy:start_http(http, 100, [{port, 8080}], - [{env, [{dispatch, Dispatch}]}]), + {ok, _} = cowboy:start_clear(http, 100, [{port, 8080}], #{ + env => #{dispatch => Dispatch} + }), websocket_sup:start_link(). stop(_State) -> diff --git a/test/examples_SUITE.erl b/test/examples_SUITE.erl index 096be02..42d0be8 100644 --- a/test/examples_SUITE.erl +++ b/test/examples_SUITE.erl @@ -249,3 +249,32 @@ do_markdown_middleware(Transport, Protocol, Config) -> {200, Headers, <<"

", _/bits >>} = do_get(Transport, Protocol, "/video.html", Config), {_, <<"text/html">>} = lists:keyfind(<<"content-type">>, 1, Headers), ok. + +%% Websocket. + +websocket(_) -> + doc("Websocket example."), + try + do_compile_and_start(websocket), + %% We can only initiate a Websocket connection from HTTP/1.1. + {ok, Pid} = gun:open("127.0.0.1", 8080, #{protocols => [http], retry => 0}), + {ok, http} = gun:await_up(Pid), + _ = monitor(process, Pid), + gun:ws_upgrade(Pid, "/websocket", [], #{compress => true}), + receive + {gun_ws_upgrade, Pid, ok, _} -> + ok; + Msg1 -> + exit({connection_failed, Msg1}) + end, + gun:ws_send(Pid, {text, <<"hello">>}), + receive + {gun_ws, Pid, {text, <<"That's what she said! hello">>}} -> + ok; + Msg2 -> + exit({receive_failed, Msg2}) + end, + gun:ws_send(Pid, close) + after + do_stop(websocket) + end. -- cgit v1.2.3