Skip to content

Commit 424d451

Browse files
committed
perf: break change: socketio传输效率优化
使用msgpack协议增加网络传输效率
1 parent 089dbbb commit 424d451

File tree

6 files changed

+21
-3
lines changed

6 files changed

+21
-3
lines changed

client/shared/api/socket.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { isDevelopment } from '../utils/environment';
55
import { showErrorToasts, showGlobalLoading, showToasts } from '../manager/ui';
66
import { t } from '../i18n';
77
import { sharedEvent } from '../event';
8+
import msgpackParser from 'socket.io-msgpack-parser';
89

910
class SocketEventError extends Error {
1011
name = 'SocketEventError';
@@ -211,6 +212,7 @@ export function createSocket(token: string): Promise<AppSocket> {
211212
token,
212213
},
213214
forceNew: true,
215+
parser: msgpackParser,
214216
});
215217
_socket.once('connect', () => {
216218
// 连接成功

client/shared/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"react-redux": "^8.0.2",
2525
"regenerator-runtime": "^0.13.9",
2626
"socket.io-client": "^4.1.2",
27+
"socket.io-msgpack-parser": "^3.0.2",
2728
"url-regex": "^5.0.0",
2829
"yup": "^0.32.9"
2930
},

pnpm-lock.yaml

Lines changed: 13 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/mixins/socketio.mixin.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import _ from 'lodash';
1818
import { ServiceUnavailableError } from 'tailchat-server-sdk';
1919
import { isValidStr } from '../lib/utils';
2020
import bcrypt from 'bcryptjs';
21+
import msgpackParser from 'socket.io-msgpack-parser';
2122

2223
const blacklist: (string | RegExp)[] = ['gateway.*'];
2324

@@ -476,7 +477,7 @@ export const TcSocketIOService = (
476477
initSocketIO() {
477478
if (!this.server) {
478479
throw new Errors.ServiceNotAvailableError(
479-
'需要和 [moleculer-web] 一起使用'
480+
'需要和 [ApiGatewayMixin] 一起使用'
480481
);
481482
}
482483
this.io = new SocketServer(this.server, {
@@ -486,6 +487,7 @@ export const TcSocketIOService = (
486487
origin: '*',
487488
methods: ['GET', 'POST'],
488489
},
490+
parser: msgpackParser,
489491
});
490492

491493
if (

server/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"send": "^0.18.0",
7272
"serve-static": "^1.15.0",
7373
"socket.io": "^4.2.0",
74+
"socket.io-msgpack-parser": "^3.0.2",
7475
"tailchat-server-sdk": "workspace:*",
7576
"ts-node": "^10.0.0",
7677
"typescript": "^4.3.3"

server/packages/sdk/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export * from './const';
4848
export { Utils, Errors } from 'moleculer';
4949

5050
/**
51-
* 统一处理未捕获的错误
51+
* 统一处理未捕获的错误, 防止直接把应用打崩
5252
* NOTICE: 未经测试
5353
*/
5454
process.on('unhandledRejection', (reason, promise) => {

0 commit comments

Comments
 (0)