mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-22 03:10:43 +08:00
fix: 失败重连问题
This commit is contained in:
@@ -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 { Divider, Tooltip, Input } from "antd";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import {
|
import {
|
||||||
@@ -19,6 +19,11 @@ export const Contro: React.FC<ControProps> = () => {
|
|||||||
const [autoFindFailedReason, setAutoFindFailedReason] = useState<string>("");
|
const [autoFindFailedReason, setAutoFindFailedReason] = useState<string>("");
|
||||||
const [enginePort, setEnginePort] = useState<string>("");
|
const [enginePort, setEnginePort] = useState<string>("");
|
||||||
const [enginePortTemp, setEnginePortTemp] = useState<string>(enginePort);
|
const [enginePortTemp, setEnginePortTemp] = useState<string>(enginePort);
|
||||||
|
const enginePortRef = useRef<string>(enginePort);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
enginePortRef.current = enginePort;
|
||||||
|
}, [enginePort]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const yakitConnectInfo = localStorage.getItem("yakit-connect");
|
const yakitConnectInfo = localStorage.getItem("yakit-connect");
|
||||||
@@ -36,9 +41,7 @@ export const Contro: React.FC<ControProps> = () => {
|
|||||||
setConnected(message.connected);
|
setConnected(message.connected);
|
||||||
if (message.connected === false) {
|
if (message.connected === false) {
|
||||||
localStorage.setItem("yakit-connect", "");
|
localStorage.setItem("yakit-connect", "");
|
||||||
setAutoFindFailedReason(
|
setAutoFindFailedReason("Yakit WebSocket Controller Connect Fail");
|
||||||
"Yakit WebSocket Controller Connect Fail"
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
"yakit-connect",
|
"yakit-connect",
|
||||||
@@ -53,6 +56,7 @@ export const Contro: React.FC<ControProps> = () => {
|
|||||||
const findPort = (port: number, max: number) => {
|
const findPort = (port: number, max: number) => {
|
||||||
const ws = new WebSocket(`ws://127.0.0.1:${port}`);
|
const ws = new WebSocket(`ws://127.0.0.1:${port}`);
|
||||||
ws.onclose = (e: CloseEvent) => {
|
ws.onclose = (e: CloseEvent) => {
|
||||||
|
if (enginePortRef.current) return
|
||||||
if (e.reason !== `FoundYakitWebSocketController` && port + 1 <= max) {
|
if (e.reason !== `FoundYakitWebSocketController` && port + 1 <= max) {
|
||||||
setTimeout(() => findPort(port + 1, max), 200);
|
setTimeout(() => findPort(port + 1, max), 200);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user