@opensumi/ide-terminal-next 3.1.5-next-1720063337.0 → 3.1.5-next-1720069890.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.
|
@@ -6,10 +6,15 @@ interface PtyServiceOptions {
|
|
|
6
6
|
* 重连时间间隔
|
|
7
7
|
*/
|
|
8
8
|
reconnectInterval?: number;
|
|
9
|
+
/**
|
|
10
|
+
* socket 超时时间
|
|
11
|
+
*/
|
|
12
|
+
socketTimeout?: number | undefined;
|
|
9
13
|
}
|
|
10
14
|
export declare class PtyServiceManagerRemote extends PtyServiceManager {
|
|
11
15
|
private disposer;
|
|
12
16
|
private options;
|
|
17
|
+
private debugLog;
|
|
13
18
|
constructor(connectOpts?: SocketConnectOpts, options?: PtyServiceOptions);
|
|
14
19
|
private initRPCService;
|
|
15
20
|
private initRemoteConnectionMode;
|
|
@@ -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;
|
|
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"}
|
|
@@ -17,6 +17,7 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
|
|
|
17
17
|
constructor(connectOpts = { port: common_1.PTY_SERVICE_PROXY_SERVER_PORT }, options) {
|
|
18
18
|
super();
|
|
19
19
|
this.options = Object.assign({ reconnectInterval: 2000 }, options);
|
|
20
|
+
this.debugLog = new ide_core_common_1.DebugLog('PtyServiceManagerRemote');
|
|
20
21
|
this.initRemoteConnectionMode(connectOpts);
|
|
21
22
|
}
|
|
22
23
|
initRPCService(socket) {
|
|
@@ -59,6 +60,9 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
|
|
|
59
60
|
}
|
|
60
61
|
this.disposer = new ide_core_common_1.Disposable();
|
|
61
62
|
const socket = new net_1.default.Socket();
|
|
63
|
+
if (this.options.socketTimeout) {
|
|
64
|
+
socket.setTimeout(this.options.socketTimeout);
|
|
65
|
+
}
|
|
62
66
|
let reconnectTimer = null;
|
|
63
67
|
const reconnect = () => {
|
|
64
68
|
if (reconnectTimer) {
|
|
@@ -73,7 +77,9 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
|
|
|
73
77
|
// UNIX Socket 连接监听,成功连接后再创建RPC服务
|
|
74
78
|
socket.once('connect', () => {
|
|
75
79
|
this.logger.log('PtyServiceManagerRemote connected');
|
|
76
|
-
|
|
80
|
+
if (this.options.socketTimeout) {
|
|
81
|
+
socket.setTimeout(0);
|
|
82
|
+
}
|
|
77
83
|
if (reconnectTimer) {
|
|
78
84
|
global.clearTimeout(reconnectTimer);
|
|
79
85
|
reconnectTimer = null;
|
|
@@ -97,12 +103,12 @@ let PtyServiceManagerRemote = class PtyServiceManagerRemote extends pty_manager_
|
|
|
97
103
|
reconnect();
|
|
98
104
|
});
|
|
99
105
|
try {
|
|
100
|
-
this.
|
|
106
|
+
this.debugLog.log('PtyServiceManagerRemote socket start connect');
|
|
101
107
|
socket.connect(connectOpts);
|
|
102
108
|
}
|
|
103
109
|
catch (e) {
|
|
104
110
|
// 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
|
|
105
|
-
this.
|
|
111
|
+
this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
|
|
106
112
|
}
|
|
107
113
|
}
|
|
108
114
|
initLocal() {
|
|
@@ -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,+
|
|
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-
|
|
3
|
+
"version": "3.1.5-next-1720069890.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-
|
|
21
|
-
"@opensumi/ide-core-common": "3.1.5-next-
|
|
22
|
-
"@opensumi/ide-core-node": "3.1.5-next-
|
|
23
|
-
"@opensumi/ide-file-service": "3.1.5-next-
|
|
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",
|
|
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-
|
|
34
|
-
"@opensumi/ide-core-browser": "3.1.5-next-
|
|
35
|
-
"@opensumi/ide-dev-tool": "3.1.5-next-
|
|
36
|
-
"@opensumi/ide-editor": "3.1.5-next-
|
|
37
|
-
"@opensumi/ide-main-layout": "3.1.5-next-
|
|
38
|
-
"@opensumi/ide-overlay": "3.1.5-next-
|
|
39
|
-
"@opensumi/ide-status-bar": "3.1.5-next-
|
|
40
|
-
"@opensumi/ide-theme": "3.1.5-next-
|
|
41
|
-
"@opensumi/ide-variable": "3.1.5-next-
|
|
42
|
-
"@opensumi/ide-workspace": "3.1.5-next-
|
|
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",
|
|
43
43
|
"@types/http-proxy": "^1.17.2",
|
|
44
44
|
"http-proxy": "^1.18.0"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "5e5f670d7366d741321429f9d6603681b2dde09e"
|
|
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 { Disposable, IDisposable } from '@opensumi/ide-core-common';
|
|
6
|
+
import { DebugLog, Disposable, IDisposable } from '@opensumi/ide-core-common';
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
IPtyProxyRPCService,
|
|
@@ -19,6 +19,10 @@ interface PtyServiceOptions {
|
|
|
19
19
|
* 重连时间间隔
|
|
20
20
|
*/
|
|
21
21
|
reconnectInterval?: number;
|
|
22
|
+
/**
|
|
23
|
+
* socket 超时时间
|
|
24
|
+
*/
|
|
25
|
+
socketTimeout?: number | undefined;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
// 双容器架构 - 在IDE容器中远程运行,与DEV Server上的PtyService通信
|
|
@@ -28,6 +32,7 @@ interface PtyServiceOptions {
|
|
|
28
32
|
export class PtyServiceManagerRemote extends PtyServiceManager {
|
|
29
33
|
private disposer: Disposable;
|
|
30
34
|
private options: PtyServiceOptions;
|
|
35
|
+
private debugLog: DebugLog;
|
|
31
36
|
|
|
32
37
|
// Pty运行在单独的容器上,通过Socket连接,可以自定义Socket连接参数
|
|
33
38
|
constructor(
|
|
@@ -39,6 +44,7 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
|
|
|
39
44
|
reconnectInterval: 2000,
|
|
40
45
|
...options,
|
|
41
46
|
};
|
|
47
|
+
this.debugLog = new DebugLog('PtyServiceManagerRemote');
|
|
42
48
|
this.initRemoteConnectionMode(connectOpts);
|
|
43
49
|
}
|
|
44
50
|
|
|
@@ -85,10 +91,15 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
|
|
|
85
91
|
this.disposer = new Disposable();
|
|
86
92
|
|
|
87
93
|
const socket = new net.Socket();
|
|
94
|
+
if (this.options.socketTimeout) {
|
|
95
|
+
socket.setTimeout(this.options.socketTimeout);
|
|
96
|
+
}
|
|
88
97
|
|
|
89
98
|
let reconnectTimer: NodeJS.Timeout | null = null;
|
|
90
99
|
const reconnect = () => {
|
|
91
|
-
if (reconnectTimer) {
|
|
100
|
+
if (reconnectTimer) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
92
103
|
reconnectTimer = global.setTimeout(() => {
|
|
93
104
|
this.logger.log('PtyServiceManagerRemote reconnect');
|
|
94
105
|
socket.destroy();
|
|
@@ -99,7 +110,9 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
|
|
|
99
110
|
// UNIX Socket 连接监听,成功连接后再创建RPC服务
|
|
100
111
|
socket.once('connect', () => {
|
|
101
112
|
this.logger.log('PtyServiceManagerRemote connected');
|
|
102
|
-
|
|
113
|
+
if (this.options.socketTimeout) {
|
|
114
|
+
socket.setTimeout(0);
|
|
115
|
+
}
|
|
103
116
|
if (reconnectTimer) {
|
|
104
117
|
global.clearTimeout(reconnectTimer);
|
|
105
118
|
reconnectTimer = null;
|
|
@@ -128,11 +141,11 @@ export class PtyServiceManagerRemote extends PtyServiceManager {
|
|
|
128
141
|
});
|
|
129
142
|
|
|
130
143
|
try {
|
|
131
|
-
this.
|
|
144
|
+
this.debugLog.log('PtyServiceManagerRemote socket start connect');
|
|
132
145
|
socket.connect(connectOpts);
|
|
133
146
|
} catch (e) {
|
|
134
147
|
// 连接错误的时候会抛出异常,此时自动重连,同时需要 catch 错误
|
|
135
|
-
this.
|
|
148
|
+
this.debugLog.warn('PtyServiceManagerRemote socket connect error', e);
|
|
136
149
|
}
|
|
137
150
|
}
|
|
138
151
|
|