@@ -80,14 +80,14 @@ cowboy_ws_connection_pid(RanchConnPid) ->
8080mqtt_init () ->
8181 CowboyOpts0 = maps :from_list (get_env (cowboy_opts , [])),
8282 CowboyWsOpts = maps :from_list (get_env (cowboy_ws_opts , [])),
83-
8483 Routes = cowboy_router :compile ([{'_' , [
8584 {get_env (ws_path , " /ws" ), rabbit_web_mqtt_handler , [{ws_opts , CowboyWsOpts }]}
8685 ]}]),
87- CowboyOpts = CowboyOpts0 #{env => #{dispatch => Routes },
88- middlewares => [cowboy_router , rabbit_web_mqtt_middleware , cowboy_handler ],
89- proxy_header => get_env (proxy_protocol , false ),
90- stream_handlers => [rabbit_web_mqtt_stream_handler , cowboy_stream_h ]},
86+ CowboyOpts = CowboyOpts0 #{
87+ env => #{dispatch => Routes },
88+ proxy_header => get_env (proxy_protocol , false ),
89+ stream_handlers => [rabbit_web_mqtt_stream_handler , cowboy_stream_h ]
90+ },
9191 case get_env (tcp_config , []) of
9292 [] -> ok ;
9393 TCPConf0 -> start_tcp_listener (TCPConf0 , CowboyOpts )
@@ -99,59 +99,55 @@ mqtt_init() ->
9999 ok .
100100
101101start_tcp_listener (TCPConf0 , CowboyOpts ) ->
102- {TCPConf , IpStr , Port } = get_tcp_conf (TCPConf0 ),
103- RanchTransportOpts = #{
104- socket_opts => TCPConf ,
105- connection_type => supervisor ,
106- max_connections => get_max_connections (),
107- num_acceptors => get_env (num_tcp_acceptors , 10 ),
108- num_conns_sups => get_env (num_conns_sup , 1 )
109- },
110- case ranch :start_listener (rabbit_networking :ranch_ref (TCPConf ),
111- ranch_tcp ,
112- RanchTransportOpts ,
113- rabbit_web_mqtt_connection_sup ,
114- CowboyOpts ) of
115- {ok , _ } -> ok ;
116- {error , {already_started , _ }} -> ok ;
117- {error , ErrTCP } ->
118- rabbit_log_connection :error (
119- " Failed to start a WebSocket (HTTP) listener. Error: ~p ,"
120- " listener settings: ~p " ,
102+ {TCPConf , IpStr , Port } = get_tcp_conf (TCPConf0 ),
103+ RanchRef = rabbit_networking :ranch_ref (TCPConf ),
104+ RanchTransportOpts =
105+ #{
106+ socket_opts => TCPConf ,
107+ max_connections => get_max_connections (),
108+ num_acceptors => get_env (num_tcp_acceptors , 10 ),
109+ num_conns_sups => get_env (num_conns_sup , 1 )
110+ },
111+ case cowboy :start_clear (RanchRef , RanchTransportOpts , CowboyOpts ) of
112+ {ok , _ } ->
113+ ok ;
114+ {error , {already_started , _ }} ->
115+ ok ;
116+ {error , ErrTCP } ->
117+ rabbit_log_connection :error (
118+ " Failed to start a WebSocket (HTTP) listener. Error: ~p , listener settings: ~p " ,
121119 [ErrTCP , TCPConf ]),
122- throw (ErrTCP )
123- end ,
124- listener_started (? TCP_PROTOCOL , TCPConf ),
125- rabbit_log :info (" rabbit_web_mqtt: listening for HTTP connections on ~s :~w " ,
126- [IpStr , Port ]).
120+ throw (ErrTCP )
121+ end ,
122+ listener_started (? TCP_PROTOCOL , TCPConf ),
123+ rabbit_log :info (" rabbit_web_mqtt: listening for HTTP connections on ~s :~w " ,
124+ [IpStr , Port ]).
127125
128126start_tls_listener (TLSConf0 , CowboyOpts ) ->
129- rabbit_networking :ensure_ssl (),
130- {TLSConf , TLSIpStr , TLSPort } = get_tls_conf (TLSConf0 ),
131- RanchTransportOpts = #{
132- socket_opts => TLSConf ,
133- connection_type => supervisor ,
134- max_connections => get_max_connections (),
135- num_acceptors => get_env (num_ssl_acceptors , 10 ),
136- num_conns_sups => get_env (num_conns_sup , 1 )
137- },
138- case ranch :start_listener (rabbit_networking :ranch_ref (TLSConf ),
139- ranch_ssl ,
140- RanchTransportOpts ,
141- rabbit_web_mqtt_connection_sup ,
142- CowboyOpts ) of
143- {ok , _ } -> ok ;
144- {error , {already_started , _ }} -> ok ;
145- {error , ErrTLS } ->
146- rabbit_log_connection :error (
147- " Failed to start a TLS WebSocket (HTTPS) listener. Error: ~p ,"
148- " listener settings: ~p " ,
127+ rabbit_networking :ensure_ssl (),
128+ {TLSConf , TLSIpStr , TLSPort } = get_tls_conf (TLSConf0 ),
129+ RanchRef = rabbit_networking :ranch_ref (TLSConf ),
130+ RanchTransportOpts =
131+ #{
132+ socket_opts => TLSConf ,
133+ max_connections => get_max_connections (),
134+ num_acceptors => get_env (num_ssl_acceptors , 10 ),
135+ num_conns_sups => get_env (num_conns_sup , 1 )
136+ },
137+ case cowboy :start_tls (RanchRef , RanchTransportOpts , CowboyOpts ) of
138+ {ok , _ } ->
139+ ok ;
140+ {error , {already_started , _ }} ->
141+ ok ;
142+ {error , ErrTLS } ->
143+ rabbit_log_connection :error (
144+ " Failed to start a TLS WebSocket (HTTPS) listener. Error: ~p , listener settings: ~p " ,
149145 [ErrTLS , TLSConf ]),
150- throw (ErrTLS )
151- end ,
152- listener_started (? TLS_PROTOCOL , TLSConf ),
153- rabbit_log :info (" rabbit_web_mqtt: listening for HTTPS connections on ~s :~w " ,
154- [TLSIpStr , TLSPort ]).
146+ throw (ErrTLS )
147+ end ,
148+ listener_started (? TLS_PROTOCOL , TLSConf ),
149+ rabbit_log :info (" rabbit_web_mqtt: listening for HTTPS connections on ~s :~w " ,
150+ [TLSIpStr , TLSPort ]).
155151
156152listener_started (Protocol , Listener ) ->
157153 Port = rabbit_misc :pget (port , Listener ),
0 commit comments