From 55c432ad6233ade2d007c092152baaa7087367cc Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sun, 12 Sep 2021 15:56:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=B8=8E=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/api/socket.ts | 23 +++++++++++------------ shared/i18n/langs/en-US/translation.json | 1 + shared/i18n/langs/zh-CN/translation.json | 1 + web/src/routes/Main/Provider.tsx | 3 ++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/shared/api/socket.ts b/shared/api/socket.ts index 7cd49703..efcc0aaf 100644 --- a/shared/api/socket.ts +++ b/shared/api/socket.ts @@ -2,11 +2,9 @@ import { io, Socket } from 'socket.io-client'; import _isNil from 'lodash/isNil'; import { getServiceUrl } from '../manager/service'; import { isDevelopment } from '../utils/environment'; -import { showErrorToasts, showGlobalLoading, showToasts } from '../manager/ui'; +import { showErrorToasts, showGlobalLoading } from '../manager/ui'; import { t } from '../i18n'; -let socket: Socket; - class SocketEventError extends Error { name = 'SocketEventError'; } @@ -43,7 +41,7 @@ export class AppSocket { } get connected(): boolean { - return socket.connected; + return this.socket.connected; } async request( @@ -75,7 +73,7 @@ export class AppSocket { /** * 初始Socket状态管理提示 */ - closeFn: unknown = null; // 全局loading关闭函数 + private closeFn: unknown = null; // 全局loading关闭函数 setupSocketStatusTip() { const socket = this.socket; @@ -129,36 +127,37 @@ export class AppSocket { } } +let _socket: Socket; /** * 创建Socket连接 * 如果已经有Socket连接则关闭上一个 * @param token Token */ export function createSocket(token: string): Promise { - if (!_isNil(socket)) { - socket.close(); + if (!_isNil(_socket)) { + _socket.close(); } return new Promise((resolve, reject) => { - socket = io(getServiceUrl(), { + _socket = io(getServiceUrl(), { transports: ['websocket'], auth: { token, }, forceNew: true, }); - socket.once('connect', () => { + _socket.once('connect', () => { // 连接成功 - const appSocket = new AppSocket(socket); + const appSocket = new AppSocket(_socket); appSocket.setupSocketStatusTip(); resolve(appSocket); }); - socket.once('error', () => { + _socket.once('error', () => { reject(); }); if (isDevelopment) { - socket.onAny((...args) => { + _socket.onAny((...args) => { console.log('Receive Notify:', args); }); } diff --git a/shared/i18n/langs/en-US/translation.json b/shared/i18n/langs/en-US/translation.json index 1c9a25e7..2ce3e2cf 100644 --- a/shared/i18n/langs/en-US/translation.json +++ b/shared/i18n/langs/en-US/translation.json @@ -118,6 +118,7 @@ "kf22210a": "Loading plugin list", "kf48ae58": "Group information not found", "kf5d66247": "Panel Name", + "kf6d7f23d": "Connecting to chat server...", "kf7d829eb": "Wait to process", "kf87f3059": "Plugin Store", "kfa01c850": "No private message found", diff --git a/shared/i18n/langs/zh-CN/translation.json b/shared/i18n/langs/zh-CN/translation.json index eb06778a..7013e0fc 100644 --- a/shared/i18n/langs/zh-CN/translation.json +++ b/shared/i18n/langs/zh-CN/translation.json @@ -118,6 +118,7 @@ "kf22210a": "正在加载插件列表", "kf48ae58": "找不到群组信息", "kf5d66247": "面板名", + "kf6d7f23d": "正在连接到聊天服务器...", "kf7d829eb": "待处理", "kf87f3059": "插件中心", "kfa01c850": "找不到私信会话", diff --git a/web/src/routes/Main/Provider.tsx b/web/src/routes/Main/Provider.tsx index 747ae260..0fffd630 100644 --- a/web/src/routes/Main/Provider.tsx +++ b/web/src/routes/Main/Provider.tsx @@ -5,6 +5,7 @@ import { useAsync, userActions, loginWithToken, + t, } from 'tailchat-shared'; import React from 'react'; import { LoadingSpinner } from '../../components/LoadingSpinner'; @@ -72,7 +73,7 @@ export const MainProvider: React.FC = React.memo((props) => { if (loading) { return (
- +
); }