fix: 失败重连问题

This commit is contained in:
song_xiao_lin
2024-05-15 14:43:04 +08:00
committed by go0p
parent ea338fe547
commit ddf036da66
+8 -4
View File
@@ -1,4 +1,4 @@
import React, { useEffect, useMemo, useState } from "react";
import React, { useEffect, useMemo, useRef, useState } from "react";
import { Divider, Tooltip, Input } from "antd";
import classNames from "classnames";
import {
@@ -19,6 +19,11 @@ export const Contro: React.FC<ControProps> = () => {
const [autoFindFailedReason, setAutoFindFailedReason] = useState<string>("");
const [enginePort, setEnginePort] = useState<string>("");
const [enginePortTemp, setEnginePortTemp] = useState<string>(enginePort);
const enginePortRef = useRef<string>(enginePort);
useEffect(() => {
enginePortRef.current = enginePort;
}, [enginePort]);
useEffect(() => {
const yakitConnectInfo = localStorage.getItem("yakit-connect");
@@ -36,9 +41,7 @@ export const Contro: React.FC<ControProps> = () => {
setConnected(message.connected);
if (message.connected === false) {
localStorage.setItem("yakit-connect", "");
setAutoFindFailedReason(
"Yakit WebSocket Controller Connect Fail"
);
setAutoFindFailedReason("Yakit WebSocket Controller Connect Fail");
} else {
localStorage.setItem(
"yakit-connect",
@@ -53,6 +56,7 @@ export const Contro: React.FC<ControProps> = () => {
const findPort = (port: number, max: number) => {
const ws = new WebSocket(`ws://127.0.0.1:${port}`);
ws.onclose = (e: CloseEvent) => {
if (enginePortRef.current) return
if (e.reason !== `FoundYakitWebSocketController` && port + 1 <= max) {
setTimeout(() => findPort(port + 1, max), 200);
}