perf: break change: socketio传输效率优化

使用msgpack协议增加网络传输效率
pull/70/head
moonrailgun 2 years ago
parent 089dbbb37f
commit 424d451cd9

@ -5,6 +5,7 @@ import { isDevelopment } from '../utils/environment';
import { showErrorToasts, showGlobalLoading, showToasts } from '../manager/ui';
import { t } from '../i18n';
import { sharedEvent } from '../event';
import msgpackParser from 'socket.io-msgpack-parser';
class SocketEventError extends Error {
name = 'SocketEventError';
@ -211,6 +212,7 @@ export function createSocket(token: string): Promise<AppSocket> {
token,
},
forceNew: true,
parser: msgpackParser,
});
_socket.once('connect', () => {
// 连接成功

@ -24,6 +24,7 @@
"react-redux": "^8.0.2",
"regenerator-runtime": "^0.13.9",
"socket.io-client": "^4.1.2",
"socket.io-msgpack-parser": "^3.0.2",
"url-regex": "^5.0.0",
"yup": "^0.32.9"
},

@ -303,6 +303,7 @@ importers:
react-redux: ^8.0.2
regenerator-runtime: ^0.13.9
socket.io-client: ^4.1.2
socket.io-msgpack-parser: ^3.0.2
url-regex: ^5.0.0
yup: ^0.32.9
dependencies:
@ -323,6 +324,7 @@ importers:
react-redux: 8.0.2_w5j4k42lgipnm43s3brx6h3c34
regenerator-runtime: 0.13.9
socket.io-client: 4.5.1
socket.io-msgpack-parser: 3.0.2
url-regex: 5.0.0
yup: 0.32.11
devDependencies:
@ -815,6 +817,7 @@ importers:
serve-static: ^1.15.0
socket.io: ^4.2.0
socket.io-client: ^4.1.3
socket.io-msgpack-parser: ^3.0.2
swagger-jsdoc: ^6.2.8
tailchat-server-sdk: workspace:*
tailchat-service-swagger-generator: workspace:^1.0.0
@ -857,6 +860,7 @@ importers:
send: 0.18.0
serve-static: 1.15.0
socket.io: 4.5.1
socket.io-msgpack-parser: 3.0.2
tailchat-server-sdk: link:packages/sdk
ts-node: 10.9.1_t4lrjbt3sxauai4t5o275zsepa
typescript: 4.7.4
@ -24439,7 +24443,7 @@ packages:
pretty-format: 27.5.1
slash: 3.0.0
strip-json-comments: 3.1.1
ts-node: 10.9.1_t4lrjbt3sxauai4t5o275zsepa
ts-node: 10.9.1_nzafxra4mdyuer2ejmql6rdadq
transitivePeerDependencies:
- bufferutil
- canvas
@ -35113,6 +35117,13 @@ packages:
- utf-8-validate
dev: false
/socket.io-msgpack-parser/3.0.2:
resolution: {integrity: sha512-1e76bJ1PCKi9H+JiYk+S29PBJvknHjQWM7Mtj0hjF2KxDA6b6rQxv3rTsnwBoz/haZOhlCDIMQvPATbqYeuMxg==}
dependencies:
component-emitter: 1.3.0
notepack.io: 2.2.0
dev: false
/socket.io-parser/4.0.5:
resolution: {integrity: sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==}
engines: {node: '>=10.0.0'}
@ -37235,6 +37246,7 @@ packages:
typescript: 4.7.4
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: false
/ts-node/10.9.1_typescript@4.7.4:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}

@ -18,6 +18,7 @@ import _ from 'lodash';
import { ServiceUnavailableError } from 'tailchat-server-sdk';
import { isValidStr } from '../lib/utils';
import bcrypt from 'bcryptjs';
import msgpackParser from 'socket.io-msgpack-parser';
const blacklist: (string | RegExp)[] = ['gateway.*'];
@ -476,7 +477,7 @@ export const TcSocketIOService = (
initSocketIO() {
if (!this.server) {
throw new Errors.ServiceNotAvailableError(
'需要和 [moleculer-web] 一起使用'
'需要和 [ApiGatewayMixin] 一起使用'
);
}
this.io = new SocketServer(this.server, {
@ -486,6 +487,7 @@ export const TcSocketIOService = (
origin: '*',
methods: ['GET', 'POST'],
},
parser: msgpackParser,
});
if (

@ -71,6 +71,7 @@
"send": "^0.18.0",
"serve-static": "^1.15.0",
"socket.io": "^4.2.0",
"socket.io-msgpack-parser": "^3.0.2",
"tailchat-server-sdk": "workspace:*",
"ts-node": "^10.0.0",
"typescript": "^4.3.3"

@ -48,7 +48,7 @@ export * from './const';
export { Utils, Errors } from 'moleculer';
/**
*
* ,
* NOTICE:
*/
process.on('unhandledRejection', (reason, promise) => {

Loading…
Cancel
Save