@@ -19,6 +19,12 @@ namespace remote_webview {
1919static const char *const TAG = " Remote_WebView" ;
2020RemoteWebView *RemoteWebView::self_ = nullptr ;
2121
22+ static inline void websocket_force_reconnect (esp_websocket_client_handle_t client) {
23+ if (!client) return ;
24+ esp_websocket_client_stop (client);
25+ esp_websocket_client_start (client);
26+ }
27+
2228void RemoteWebView::setup () {
2329 self_ = this ;
2430
@@ -159,7 +165,7 @@ void RemoteWebView::ws_task_tramp_(void *arg) {
159165 vTaskDelay (pdMS_TO_TICKS (5000 ));
160166
161167 if (!esp_websocket_client_is_connected (client)) {
162- esp_websocket_client_reconnect (client);
168+ websocket_force_reconnect (client);
163169 continue ;
164170 }
165171
@@ -200,7 +206,7 @@ void RemoteWebView::ws_event_handler_(void *handler_arg, esp_event_base_t, int32
200206 ESP_LOGI (TAG, " [ws] disconnected" );
201207 if (self_) self_->last_keepalive_us_ = 0 ;
202208 reasm_reset_ (*r);
203- esp_websocket_client_reconnect (e->client );
209+ websocket_force_reconnect (e->client );
204210 break ;
205211
206212#ifdef WEBSOCKET_EVENT_CLOSED
@@ -209,7 +215,7 @@ void RemoteWebView::ws_event_handler_(void *handler_arg, esp_event_base_t, int32
209215 ESP_LOGI (TAG, " [ws] closed" );
210216 if (self_) self_->last_keepalive_us_ = 0 ;
211217 reasm_reset_ (*r);
212- esp_websocket_client_reconnect (e->client );
218+ websocket_force_reconnect (e->client );
213219 break ;
214220#endif
215221
0 commit comments