@opensumi/ide-terminal-next 3.1.5-next-1720069890.0 → 3.1.5-next-1720156680.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  import { SocketConnectOpts } from 'net';
3
3
  import { PtyServiceManager } from './pty.manager';
4
- interface PtyServiceOptions {
5
- /**
6
- * 重连时间间隔
7
- */
8
- reconnectInterval?: number;
9
- /**
10
- * socket 超时时间
11
- */
12
- socketTimeout?: number | undefined;
13
- }
14
4
  export declare class PtyServiceManagerRemote extends PtyServiceManager {
15
- private disposer;
16
- private options;
17
- private debugLog;
18
- constructor(connectOpts?: SocketConnectOpts, options?: PtyServiceOptions);
5
+ constructor(connectOpts?: SocketConnectOpts);
19
6
  private initRPCService;
20
7
  private initRemoteConnectionMode;
21
8
  initLocal(): void;
22
9
  }
23
- export {};
24
10
  //# sourceMappingURL=pty.manager.remote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.manager.remote.d.ts","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":";AAAA,OAAY,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AAc7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,UAAU,iBAAiB;IACzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAKD,qBACa,uBAAwB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAW;gBAIb,WAAW,GAAE,iBAA2D,EACxE,OAAO,CAAC,EAAE,iBAAiB;IAWzC,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAiEvB,SAAS;CAGnB"}
1
+ {"version":3,"file":"pty.manager.remote.d.ts","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":";AAAA,OAAY,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AAc7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAKlD,qBACa,uBAAwB,SAAQ,iBAAiB;gBAEpC,WAAW,GAAE,iBAA2D;IAKhG,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAiCvB,SAAS;CAGnB"}
@@ -14,10 +14,8 @@ const pty_manager_1 = require("./pty.manager");
14
14
  // 具体需要根据应用场景,通过DI注入覆盖PtyServiceManager使用
15
15
  let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_1.PtyServiceManager {
16
16
  // Pty运行在单独的容器上,通过Socket连接,可以自定义Socket连接参数
17
- constructor(connectOpts = { port: common_1.PTY_SERVICE_PROXY_SERVER_PORT }, options) {
17
+ constructor(connectOpts = { port: common_1.PTY_SERVICE_PROXY_SERVER_PORT }) {
18
18
  super();
19
- this.options = Object.assign({ reconnectInterval: 2000 }, options);
20
- this.debugLog = new ide_core_common_1.DebugLog('PtyServiceManagerRemote');
21
19
  this.initRemoteConnectionMode(connectOpts);
22
20
  }
23
21
  initRPCService(socket) {
@@ -55,60 +53,32 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
55
53
  });
56
54
  }
57
55
  initRemoteConnectionMode(connectOpts) {
58
- if (this.disposer) {
59
- this.disposer.dispose();
60
- }
61
- this.disposer = new ide_core_common_1.Disposable();
62
56
  const socket = new net_1.default.Socket();
63
- if (this.options.socketTimeout) {
64
- socket.setTimeout(this.options.socketTimeout);
65
- }
66
- let reconnectTimer = null;
67
- const reconnect = () => {
68
- if (reconnectTimer) {
69
- return;
70
- }
71
- reconnectTimer = global.setTimeout(() => {
72
- this.logger.log('PtyServiceManagerRemote reconnect');
73
- socket.destroy();
74
- this.initRemoteConnectionMode(connectOpts);
75
- }, this.options.reconnectInterval);
76
- };
57
+ let rpcServiceDisposable;
77
58
  // UNIX Socket 连接监听,成功连接后再创建RPC服务
78
- socket.once('connect', () => {
59
+ socket.on('connect', () => {
79
60
  this.logger.log('PtyServiceManagerRemote connected');
80
- if (this.options.socketTimeout) {
81
- socket.setTimeout(0);
82
- }
83
- if (reconnectTimer) {
84
- global.clearTimeout(reconnectTimer);
85
- reconnectTimer = null;
86
- }
87
- this.disposer.addDispose(this.initRPCService(socket));
61
+ rpcServiceDisposable === null || rpcServiceDisposable === void 0 ? void 0 : rpcServiceDisposable.dispose();
62
+ rpcServiceDisposable = this.initRPCService(socket);
88
63
  });
89
64
  // UNIX Socket 连接失败或者断开,此时需要等待 1.5s 后重新连接
90
- socket.on('close', (hadError) => {
91
- this.logger.log('PtyServiceManagerRemote socket close, hadError:', hadError);
92
- reconnect();
65
+ socket.on('close', () => {
66
+ this.logger.log('PtyServiceManagerRemote connect failed, will reconnect after 2s');
67
+ rpcServiceDisposable === null || rpcServiceDisposable === void 0 ? void 0 : rpcServiceDisposable.dispose();
68
+ global.setTimeout(() => {
69
+ this.initRemoteConnectionMode(connectOpts);
70
+ }, 2000);
93
71
  });
94
72
  // 处理 Socket 异常
95
73
  socket.on('error', (e) => {
96
- this.logger.warn('PtyServiceManagerRemote socket error ', e);
97
- });
98
- socket.on('end', () => {
99
- this.logger.log('PtyServiceManagerRemote socket end');
100
- });
101
- socket.on('timeout', () => {
102
- this.logger.log('PtyServiceManagerRemote socket timeout');
103
- reconnect();
74
+ this.logger.warn('pty unix domain socket error ', e);
104
75
  });
105
76
  try {
106
- this.debugLog.log('PtyServiceManagerRemote socket start connect');
107
77
  socket.connect(connectOpts);
108
78
  }
109
79
  catch (e) {
110
80
  // 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
111
- this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
81
+ this.logger.warn(e);
112
82
  }
113
83
  }
114
84
  initLocal() {
@@ -118,8 +88,7 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
118
88
  PtyServiceManagerRemote = tslib_1.__decorate([
119
89
  (0, di_1.Injectable)(),
120
90
  tslib_1.__param(0, (0, di_1.Optional)()),
121
- tslib_1.__param(1, (0, di_1.Optional)()),
122
- tslib_1.__metadata("design:paramtypes", [Object, Object])
91
+ tslib_1.__metadata("design:paramtypes", [Object])
123
92
  ], PtyServiceManagerRemote);
124
93
  exports.PtyServiceManagerRemote = PtyServiceManagerRemote;
125
94
  //# sourceMappingURL=pty.manager.remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty.manager.remote.js","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":";;;;AAAA,sDAA6C;AAE7C,qCAAoD;AACpD,6DAA4E;AAC5E,mFAAoF;AACpF,+DAA8E;AAE9E,sCAKmB;AAEnB,+CAAkD;AAalD,gDAAgD;AAChD,uEAAuE;AACvE,yCAAyC;AAElC,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,+BAAiB;IAK5D,0CAA0C;IAC1C,YACc,cAAiC,EAAE,IAAI,EAAE,sCAA6B,EAAE,EACxE,OAA2B;QAEvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,mBACV,iBAAiB,EAAE,IAAI,IACpB,OAAO,CACX,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAQ,CAAC,yBAAyB,CAAC,CAAC;QACxD,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEO,cAAc,CAAC,MAAkB;QACvC,MAAM,YAAY,GAAG,IAAI,iCAAgB,EAAE,CAAC;QAC5C,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,IAAA,+BAAc,EAAC,YAAY,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAwB,mBAAmB,CAAC,mCAA0B,CAAQ,CAAC;QAC/F,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,OAAO;QACP,gBAAgB,CAAC,4CAAmC,EAAE;YACpD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE;gBACnC,IAAI,gBAAgB,EAAE;oBACpB,qCAAqC;oBACrC,8DAA8D;oBAC9D,OAAO;iBACR;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,EAAE;oBACb,oDAAoD;oBACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;iBACnE;qBAAM;oBACL,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;iBACnB;YACH,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,2BAAc,CAAC,YAAY,CAAC,MAAM,EAAE;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,4BAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC5B,gBAAgB,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,WAA8B;QAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAU,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,aAAG,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/C;QAED,IAAI,cAAc,GAA0B,IAAI,CAAC;QACjD,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,cAAc,EAAE;gBAClB,OAAO;aACR;YACD,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;gBACrD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACtB;YACD,IAAI,cAAc,EAAE;gBAClB,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBACpC,cAAc,GAAG,IAAI,CAAC;aACvB;YACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iDAAiD,EAAE,QAAQ,CAAC,CAAC;YAC7E,SAAS,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAC1D,SAAS,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,oCAAoC;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8CAA8C,EAAE,CAAC,CAAC,CAAC;SACvE;IACH,CAAC;IAEQ,SAAS;QAChB,iDAAiD;IACnD,CAAC;CACF,CAAA;AA3HY,uBAAuB;IADnC,IAAA,eAAU,GAAE;IAQR,mBAAA,IAAA,aAAQ,GAAE,CAAA;IACV,mBAAA,IAAA,aAAQ,GAAE,CAAA;;GARF,uBAAuB,CA2HnC;AA3HY,0DAAuB"}
1
+ {"version":3,"file":"pty.manager.remote.js","sourceRoot":"","sources":["../../src/node/pty.manager.remote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-terminal-next",
3
- "version": "3.1.5-next-1720069890.0",
3
+ "version": "3.1.5-next-1720156680.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -17,10 +17,10 @@
17
17
  "url": "git@github.com:opensumi/core.git"
18
18
  },
19
19
  "dependencies": {
20
- "@opensumi/ide-connection": "3.1.5-next-1720069890.0",
21
- "@opensumi/ide-core-common": "3.1.5-next-1720069890.0",
22
- "@opensumi/ide-core-node": "3.1.5-next-1720069890.0",
23
- "@opensumi/ide-file-service": "3.1.5-next-1720069890.0",
20
+ "@opensumi/ide-connection": "3.1.5-next-1720156680.0",
21
+ "@opensumi/ide-core-common": "3.1.5-next-1720156680.0",
22
+ "@opensumi/ide-core-node": "3.1.5-next-1720156680.0",
23
+ "@opensumi/ide-file-service": "3.1.5-next-1720156680.0",
24
24
  "node-pty": "1.0.0",
25
25
  "os-locale": "^4.0.0",
26
26
  "xterm": "5.3.0",
@@ -30,18 +30,18 @@
30
30
  "xterm-addon-webgl": "0.15.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@opensumi/ide-components": "3.1.5-next-1720069890.0",
34
- "@opensumi/ide-core-browser": "3.1.5-next-1720069890.0",
35
- "@opensumi/ide-dev-tool": "3.1.5-next-1720069890.0",
36
- "@opensumi/ide-editor": "3.1.5-next-1720069890.0",
37
- "@opensumi/ide-main-layout": "3.1.5-next-1720069890.0",
38
- "@opensumi/ide-overlay": "3.1.5-next-1720069890.0",
39
- "@opensumi/ide-status-bar": "3.1.5-next-1720069890.0",
40
- "@opensumi/ide-theme": "3.1.5-next-1720069890.0",
41
- "@opensumi/ide-variable": "3.1.5-next-1720069890.0",
42
- "@opensumi/ide-workspace": "3.1.5-next-1720069890.0",
33
+ "@opensumi/ide-components": "3.1.5-next-1720156680.0",
34
+ "@opensumi/ide-core-browser": "3.1.5-next-1720156680.0",
35
+ "@opensumi/ide-dev-tool": "3.1.5-next-1720156680.0",
36
+ "@opensumi/ide-editor": "3.1.5-next-1720156680.0",
37
+ "@opensumi/ide-main-layout": "3.1.5-next-1720156680.0",
38
+ "@opensumi/ide-overlay": "3.1.5-next-1720156680.0",
39
+ "@opensumi/ide-status-bar": "3.1.5-next-1720156680.0",
40
+ "@opensumi/ide-theme": "3.1.5-next-1720156680.0",
41
+ "@opensumi/ide-variable": "3.1.5-next-1720156680.0",
42
+ "@opensumi/ide-workspace": "3.1.5-next-1720156680.0",
43
43
  "@types/http-proxy": "^1.17.2",
44
44
  "http-proxy": "^1.18.0"
45
45
  },
46
- "gitHead": "5e5f670d7366d741321429f9d6603681b2dde09e"
46
+ "gitHead": "80991f98ad380086aeaafa008b1bbca3e2e3e40a"
47
47
  }
@@ -3,7 +3,7 @@ import net, { SocketConnectOpts } from 'net';
3
3
  import { Injectable, Optional } from '@opensumi/di';
4
4
  import { RPCServiceCenter, initRPCService } from '@opensumi/ide-connection';
5
5
  import { SumiConnection } from '@opensumi/ide-connection/lib/common/rpc/connection';
6
- import { DebugLog, Disposable, IDisposable } from '@opensumi/ide-core-common';
6
+ import { Disposable, IDisposable } from '@opensumi/ide-core-common';
7
7
 
8
8
  import {
9
9
  IPtyProxyRPCService,
@@ -14,37 +14,14 @@ import {
14
14
 
15
15
  import { PtyServiceManager } from './pty.manager';
16
16
 
17
- interface PtyServiceOptions {
18
- /**
19
- * 重连时间间隔
20
- */
21
- reconnectInterval?: number;
22
- /**
23
- * socket 超时时间
24
- */
25
- socketTimeout?: number | undefined;
26
- }
27
-
28
17
  // 双容器架构 - 在IDE容器中远程运行,与DEV Server上的PtyService通信
29
18
  // 继承自PtyServiceManager,覆写了创建PtyProxyService连接的方法,用于需要远程连接PtyService的场景
30
19
  // 具体需要根据应用场景,通过DI注入覆盖PtyServiceManager使用
31
20
  @Injectable()
32
21
  export class PtyServiceManagerRemote extends PtyServiceManager {
33
- private disposer: Disposable;
34
- private options: PtyServiceOptions;
35
- private debugLog: DebugLog;
36
-
37
22
  // Pty运行在单独的容器上,通过Socket连接,可以自定义Socket连接参数
38
- constructor(
39
- @Optional() connectOpts: SocketConnectOpts = { port: PTY_SERVICE_PROXY_SERVER_PORT },
40
- @Optional() options?: PtyServiceOptions,
41
- ) {
23
+ constructor(@Optional() connectOpts: SocketConnectOpts = { port: PTY_SERVICE_PROXY_SERVER_PORT }) {
42
24
  super();
43
- this.options = {
44
- reconnectInterval: 2000,
45
- ...options,
46
- };
47
- this.debugLog = new DebugLog('PtyServiceManagerRemote');
48
25
  this.initRemoteConnectionMode(connectOpts);
49
26
  }
50
27
 
@@ -85,67 +62,35 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
85
62
  }
86
63
 
87
64
  private initRemoteConnectionMode(connectOpts: SocketConnectOpts) {
88
- if (this.disposer) {
89
- this.disposer.dispose();
90
- }
91
- this.disposer = new Disposable();
92
-
93
65
  const socket = new net.Socket();
94
- if (this.options.socketTimeout) {
95
- socket.setTimeout(this.options.socketTimeout);
96
- }
97
-
98
- let reconnectTimer: NodeJS.Timeout | null = null;
99
- const reconnect = () => {
100
- if (reconnectTimer) {
101
- return;
102
- }
103
- reconnectTimer = global.setTimeout(() => {
104
- this.logger.log('PtyServiceManagerRemote reconnect');
105
- socket.destroy();
106
- this.initRemoteConnectionMode(connectOpts);
107
- }, this.options.reconnectInterval);
108
- };
66
+ let rpcServiceDisposable: IDisposable | undefined;
109
67
 
110
68
  // UNIX Socket 连接监听,成功连接后再创建RPC服务
111
- socket.once('connect', () => {
69
+ socket.on('connect', () => {
112
70
  this.logger.log('PtyServiceManagerRemote connected');
113
- if (this.options.socketTimeout) {
114
- socket.setTimeout(0);
115
- }
116
- if (reconnectTimer) {
117
- global.clearTimeout(reconnectTimer);
118
- reconnectTimer = null;
119
- }
120
- this.disposer.addDispose(this.initRPCService(socket));
71
+ rpcServiceDisposable?.dispose();
72
+ rpcServiceDisposable = this.initRPCService(socket);
121
73
  });
122
74
 
123
75
  // UNIX Socket 连接失败或者断开,此时需要等待 1.5s 后重新连接
124
- socket.on('close', (hadError) => {
125
- this.logger.log('PtyServiceManagerRemote socket close, hadError:', hadError);
126
- reconnect();
76
+ socket.on('close', () => {
77
+ this.logger.log('PtyServiceManagerRemote connect failed, will reconnect after 2s');
78
+ rpcServiceDisposable?.dispose();
79
+ global.setTimeout(() => {
80
+ this.initRemoteConnectionMode(connectOpts);
81
+ }, 2000);
127
82
  });
128
83
 
129
84
  // 处理 Socket 异常
130
85
  socket.on('error', (e) => {
131
- this.logger.warn('PtyServiceManagerRemote socket error ', e);
132
- });
133
-
134
- socket.on('end', () => {
135
- this.logger.log('PtyServiceManagerRemote socket end');
136
- });
137
-
138
- socket.on('timeout', () => {
139
- this.logger.log('PtyServiceManagerRemote socket timeout');
140
- reconnect();
86
+ this.logger.warn('pty unix domain socket error ', e);
141
87
  });
142
88
 
143
89
  try {
144
- this.debugLog.log('PtyServiceManagerRemote socket start connect');
145
90
  socket.connect(connectOpts);
146
91
  } catch (e) {
147
92
  // 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
148
- this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
93
+ this.logger.warn(e);
149
94
  }
150
95
  }
151
96