From 00cb26c4e0275fad0ccf6bdb315966888af54532 Mon Sep 17 00:00:00 2001 From: turtled Date: Wed, 29 Aug 2018 10:00:41 +0800 Subject: [PATCH] Support ws mqtt any version --- src/emqx_ws_connection.erl | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/emqx_ws_connection.erl b/src/emqx_ws_connection.erl index 67ce078d1..b94b241cd 100644 --- a/src/emqx_ws_connection.erl +++ b/src/emqx_ws_connection.erl @@ -87,14 +87,11 @@ init(Req, Opts) -> case cowboy_req:parse_header(<<"sec-websocket-protocol">>, Req) of undefined -> {cowboy_websocket, Req, #state{}}; - Subprotocols -> - case lists:member(<<"mqtt">>, Subprotocols) of - true -> - Resp = cowboy_req:set_resp_header(<<"sec-websocket-protocol">>, <<"mqtt">>, Req), - {cowboy_websocket, Resp, #state{request = Req, options = Opts}, #{idle_timeout => 86400000}}; - false -> - {ok, cowboy_req:reply(400, Req), #state{}} - end + [<<"mqtt", Vsn/binary>>] -> + Resp = cowboy_req:set_resp_header(<<"sec-websocket-protocol">>, <<"mqtt", Vsn/binary>>, Req), + {cowboy_websocket, Resp, #state{request = Req, options = Opts}, #{idle_timeout => 86400000}}; + R -> + {ok, cowboy_req:reply(400, Req), #state{}} end. websocket_init(#state{request = Req, options = Options}) ->