Ver código fonte

Support ws mqtt any version

turtled 7 anos atrás
pai
commit
00cb26c4e0
1 arquivos alterados com 5 adições e 8 exclusões
  1. 5 8
      src/emqx_ws_connection.erl

+ 5 - 8
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}) ->