From a4180ae29c772a782dc840d6c444d857a3707ca6 Mon Sep 17 00:00:00 2001 From: shenjack <3695888@qq.com> Date: Sat, 1 Jun 2024 22:10:50 +0800 Subject: [PATCH] chore: change env to DISABLE_MESSAGEPACK and enhance the code --- .../src/openapi/client/ws.ts | 27 ++++++------------- client/shared/api/socket.ts | 27 +++++++------------ .../packages/sdk/src/services/lib/settings.ts | 2 +- server/services/core/config.service.ts | 2 +- website/docs/deployment/environment.md | 2 +- .../current/deployment/environment.md | 2 +- 6 files changed, 21 insertions(+), 41 deletions(-) diff --git a/client/packages/tailchat-client-sdk/src/openapi/client/ws.ts b/client/packages/tailchat-client-sdk/src/openapi/client/ws.ts index 7560bbc2..236b701e 100644 --- a/client/packages/tailchat-client-sdk/src/openapi/client/ws.ts +++ b/client/packages/tailchat-client-sdk/src/openapi/client/ws.ts @@ -20,25 +20,14 @@ export class TailchatWsClient extends TailchatBaseClient { await this.waitingForLogin(); const token = this.jwt; - let socket: Socket; - if (this.useMsgpack) { - socket = this.socket = io(this.url, { - transports: ['websocket'], - auth: { - token, - }, - forceNew: true, - parser: msgpackParser, - }); - } else { - socket = this.socket = io(this.url, { - transports: ['websocket'], - auth: { - token, - }, - forceNew: true, - }); - } + const socket = (this.socket = io(this.url, { + transports: ['websocket'], + auth: { + token, + }, + forceNew: true, + parser: this.useMsgpack ? msgpackParser : undefined, + })); socket.once('connect', () => { // 连接成功 diff --git a/client/shared/api/socket.ts b/client/shared/api/socket.ts index 70f29d22..8a190b39 100644 --- a/client/shared/api/socket.ts +++ b/client/shared/api/socket.ts @@ -208,24 +208,15 @@ export function createSocket(token: string): Promise { } return new Promise((resolve, reject) => { - if (getGlobalConfig().disableSocketMsgpack) { - _socket = io(getServiceUrl(), { - transports: ['websocket'], - auth: { - token, - }, - forceNew: true, - }); - } else { - _socket = io(getServiceUrl(), { - transports: ['websocket'], - auth: { - token, - }, - forceNew: true, - parser: msgpackParser, - }); - } + const disableSocketMsgpack = getGlobalConfig().disableSocketMsgpack; + _socket = io(getServiceUrl(), { + transports: ['websocket'], + auth: { + token, + }, + forceNew: true, + parser: disableSocketMsgpack ? undefined : msgpackParser, + }); _socket.once('connect', () => { // 连接成功 const appSocket = new AppSocket(_socket); diff --git a/server/packages/sdk/src/services/lib/settings.ts b/server/packages/sdk/src/services/lib/settings.ts index efe9e8d3..d58a5530 100644 --- a/server/packages/sdk/src/services/lib/settings.ts +++ b/server/packages/sdk/src/services/lib/settings.ts @@ -63,7 +63,7 @@ export const config = { websiteId: process.env.TIANJI_WEBSITE_ID, }, feature: { - disableSocketMsgpack: checkEnvTrusty(process.env.DISABLE_SOCKET_MSGPACK), // 是否禁用socketio的 msgpack parser + disableMsgpack: checkEnvTrusty(process.env.DISABLE_MESSAGEPACK), // 是否禁用socketio的 messgpack parser disableFileCheck: checkEnvTrusty(process.env.DISABLE_FILE_CHECK), disableLogger: checkEnvTrusty(process.env.DISABLE_LOGGER), // 是否关闭日志 disableUserRegister: checkEnvTrusty(process.env.DISABLE_USER_REGISTER), // 是否关闭用户注册功能 diff --git a/server/services/core/config.service.ts b/server/services/core/config.service.ts index 7d89ed76..e5e922c6 100644 --- a/server/services/core/config.service.ts +++ b/server/services/core/config.service.ts @@ -80,7 +80,7 @@ class ConfigService extends TcService { tianji: config.tianji, uploadFileLimit: config.storage.limit, emailVerification: config.emailVerification, - disableSocketMsgpack: config.feature.disableSocketMsgpack, + disableMsgpack: config.feature.disableMsgpack, disableUserRegister: config.feature.disableUserRegister, disableGuestLogin: config.feature.disableGuestLogin, disableCreateGroup: config.feature.disableCreateGroup, diff --git a/website/docs/deployment/environment.md b/website/docs/deployment/environment.md index 9754d62f..e57629fc 100644 --- a/website/docs/deployment/environment.md +++ b/website/docs/deployment/environment.md @@ -27,7 +27,7 @@ title: Environment Variable | REQUEST_TIMEOUT | 10000 | Number of milliseconds to wait before reject a request with a RequestTimeout error. Disabled: 0 | | TIANJI_SCRIPT_URL | - | Script Url of Tianji if you wanna monitor Tailchat user usage, you can get it in code modal in Tianji website (example: `https://tianji.example.com/tracker.js`) | | TIANJI_WEBSITE_ID | - | Tianji website id | -| DISABLE_SOCKET_MSGPACK | - | Whether to disable socket using messagepack, if "1" or "true" turn off this method | +| DISABLE_MESSAGEPACK | - | Whether to disable using messagepack as [parser](https://socket.io/docs/v4/custom-parser/) for socketio in openapi, if "1" or "true" turn off this method | | DISABLE_LOGGER | - | Whether to disable the log output, if "1" or "true" turn off the log on the fly | | DISABLE_USER_REGISTER | - | Whether to disable the user register, if "1" or "true" turn off this method | | DISABLE_GUEST_LOGIN | - | Whether to disable the guest login, if "1" or "true" turn off this method | diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md index 474f6987..f11eb180 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/environment.md @@ -27,7 +27,7 @@ title: 环境变量 | REQUEST_TIMEOUT | 10000 | 请求超时毫秒数,请求超过该时间没有完成会抛出 `RequestTimeout` 错误。 如果需要禁用请求超时限制传:0 | | TIANJI_SCRIPT_URL | - | Tianji 脚本 URL,如需监控 Tailchat 用户使用情况,可在天际网站代码模式中获取 (例如:`https://tianji.example.com/tracker.js`) | | TIANJI_WEBSITE_ID | - | Tianji 网站 id | -| DISABLE_SOCKET_MSGPACK | - | 是否禁用socket使用messagepack, 如果为 "1" 或者 "true" 则禁用该功能 | +| DISABLE_MESSAGEPACK | - | 是否禁用 openapi 的 sockio 使用 messagepack 作为 [解析器](https://socket.io/zh-CN/docs/v4/custom-parser/), 如果为 "1" 或者 "true" 则禁用该功能 | | DISABLE_LOGGER | - | 是否禁用日志输出, 如果为 "1" 或者 "true" 则在运行中关闭日志 | | DISABLE_USER_REGISTER | - | 是否关闭用户注册功能, 如果为 "1" 或者 "true" 则关闭该功能 | | DISABLE_GUEST_LOGIN | - | 是否关闭用户游客登录功能, 如果为 "1" 或者 "true" 则关闭该功能 |