@opensumi/ide-connection 2.21.9 → 2.21.10-next-1671764634.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.
- package/lib/common/connect.d.ts +2 -2
- package/lib/common/connect.d.ts.map +1 -1
- package/lib/common/proxy.js +6 -6
- package/lib/common/proxy.js.map +1 -1
- package/lib/common/rpcProtocol.js +11 -11
- package/lib/common/rpcProtocol.js.map +1 -1
- package/lib/common/ws-channel.d.ts +2 -2
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/browser/index.ts +1 -0
- package/src/browser/ws-channel-handler.ts +124 -0
- package/src/common/connect.ts +199 -0
- package/src/common/index.ts +6 -0
- package/src/common/message.ts +93 -0
- package/src/common/proxy.ts +303 -0
- package/src/common/rpcProtocol.ts +377 -0
- package/src/common/utils.ts +44 -0
- package/src/common/ws-channel.ts +144 -0
- package/src/index.ts +1 -0
- package/src/node/common-channel-handler.ts +227 -0
- package/src/node/connect.ts +11 -0
- package/src/node/index.ts +7 -0
- package/src/node/ws.ts +109 -0
package/lib/common/connect.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MessageConnection } from '@opensumi/vscode-jsonrpc/lib/common/connection';
|
|
2
2
|
import { RPCProxy } from './proxy';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export type RPCServiceMethod = (...args: any[]) => any;
|
|
4
|
+
export type ServiceProxy = any;
|
|
5
5
|
export declare enum ServiceType {
|
|
6
6
|
Service = 0,
|
|
7
7
|
Stub = 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/common/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC;AAE/B,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,MAAM;IAAE,OAAO,CAAC,IAAI;gBAAjD,WAAW,EAAE,MAAM,EAAU,MAAM,KAAA,EAAU,IAAI,EAAE,WAAW;IAM5E,KAAK;IAGX,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAGhC,cAAc,CAAC,IAAI,EAAE,MAAM;IAI3B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAGzC,gBAAgB,CAAC,OAAO,KAAA,GAAG,MAAM,EAAE;IAmBnC,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAO7B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAGhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,OAAA;IAI/B,aAAa,CAAC,IAAI,EAAE,MAAM;IAG1B,QAAQ,8BAoBH;CACN;AAED,wBAAgB,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB;6BAEpC,MAAM,YAAY,GAAG;0BAQxB,MAAM;EAE/B;AAED,UAAU,MAAM;IACd,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAEtF;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAEnF;AAED,qBAAa,gBAAgB;IAcf,OAAO,CAAC,KAAK,CAAC;IAbnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,QAAQ,EAAE,CAAM;IAC1B,YAAY,EAAE,YAAY,EAAE,CAAM;IACzC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,MAAM,CAAC;gBAEK,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,GAAG;IAQhD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAW7D,IAAI;IAIJ,aAAa,CAAC,UAAU,EAAE,iBAAiB;IAc3C,gBAAgB,CAAC,UAAU,EAAE,iBAAiB;IAU9C,SAAS,CAAC,IAAI,KAAA,EAAE,MAAM,EAAE,gBAAgB;IASxC,SAAS,CAAC,IAAI,KAAA,EAAE,GAAG,IAAI,OAAA,GAAG,OAAO,CAAC,GAAG,CAAC;CAKvC"}
|
package/lib/common/proxy.js
CHANGED
|
@@ -30,12 +30,6 @@ class ProxyClient {
|
|
|
30
30
|
}
|
|
31
31
|
exports.ProxyClient = ProxyClient;
|
|
32
32
|
class RPCProxy {
|
|
33
|
-
constructor(target, logger) {
|
|
34
|
-
this.target = target;
|
|
35
|
-
this.proxyService = {};
|
|
36
|
-
this.waitForConnection();
|
|
37
|
-
this.logger = logger || console;
|
|
38
|
-
}
|
|
39
33
|
// capture messages for opensumi devtools
|
|
40
34
|
capture(message) {
|
|
41
35
|
const capturer = (0, utils_1.getCapturer)();
|
|
@@ -43,6 +37,12 @@ class RPCProxy {
|
|
|
43
37
|
capturer(message);
|
|
44
38
|
}
|
|
45
39
|
}
|
|
40
|
+
constructor(target, logger) {
|
|
41
|
+
this.target = target;
|
|
42
|
+
this.proxyService = {};
|
|
43
|
+
this.waitForConnection();
|
|
44
|
+
this.logger = logger || console;
|
|
45
|
+
}
|
|
46
46
|
listenService(service) {
|
|
47
47
|
if (this.connection) {
|
|
48
48
|
const proxyService = this.proxyService;
|
package/lib/common/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/common/proxy.ts"],"names":[],"mappings":";;;AAAA,+DAAmE;AAGnE,mCAAqF;AAErF,MAAsB,UAAU;IAI9B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;CACF;AAPD,gCAOC;AAEY,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD,MAAa,WAAW;IAItB,YAAY,KAAU,EAAE,aAAa,GAAG,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACM,SAAS;QACd,OAAO,IAAI,KAAK,CACd,EAAE,EACF;YACE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAqB,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAc,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;iBAC1B;qBAAM;oBACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC;SACF,CACF,CAAC;IACJ,CAAC;CACF;AAtBD,kCAsBC;AAMD,MAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/common/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,7 +83,7 @@ var ObjectTransfer;
|
|
|
83
83
|
})(ObjectTransfer = exports.ObjectTransfer || (exports.ObjectTransfer = {}));
|
|
84
84
|
class MessageIO {
|
|
85
85
|
static cancel(req, messageToSendHostId) {
|
|
86
|
-
return `{"type":${4 /* Cancel */},"id":"${req}"}`;
|
|
86
|
+
return `{"type":${4 /* MessageType.Cancel */},"id":"${req}"}`;
|
|
87
87
|
}
|
|
88
88
|
static serializeRequest(callId, rpcId, method, args) {
|
|
89
89
|
args = args.map((arg) => {
|
|
@@ -96,33 +96,33 @@ class MessageIO {
|
|
|
96
96
|
}
|
|
97
97
|
return arg;
|
|
98
98
|
});
|
|
99
|
-
return `{"type": ${1 /* Request */}, "id": "${callId}", "proxyId": "${rpcId}", "method": "${method}", "args": ${JSON.stringify(args, ObjectTransfer.replacer)}}`;
|
|
99
|
+
return `{"type": ${1 /* MessageType.Request */}, "id": "${callId}", "proxyId": "${rpcId}", "method": "${method}", "args": ${JSON.stringify(args, ObjectTransfer.replacer)}}`;
|
|
100
100
|
}
|
|
101
101
|
static serializeReplyOK(callId, res, logger) {
|
|
102
102
|
if (typeof res === 'undefined') {
|
|
103
|
-
return `{"type": ${2 /* Reply */}, "id": "${callId}"}`;
|
|
103
|
+
return `{"type": ${2 /* MessageType.Reply */}, "id": "${callId}"}`;
|
|
104
104
|
}
|
|
105
105
|
else {
|
|
106
106
|
try {
|
|
107
|
-
return `{"type": ${2 /* Reply */}, "id": "${callId}", "res": ${JSON.stringify(res, ObjectTransfer.replacer)}}`;
|
|
107
|
+
return `{"type": ${2 /* MessageType.Reply */}, "id": "${callId}", "res": ${JSON.stringify(res, ObjectTransfer.replacer)}}`;
|
|
108
108
|
}
|
|
109
109
|
catch (e) {
|
|
110
110
|
if (logger) {
|
|
111
111
|
logger.warn('res', res);
|
|
112
112
|
}
|
|
113
|
-
return `{"type": ${2 /* Reply */}, "id": "${callId}", "res": {}}`;
|
|
113
|
+
return `{"type": ${2 /* MessageType.Reply */}, "id": "${callId}", "res": {}}`;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
static serializeReplyError(callId, error, logger) {
|
|
118
118
|
try {
|
|
119
|
-
return `{"type": ${3 /* ReplyErr */}, "id": "${callId}", "res": ${JSON.stringify(transformErrorForSerialization(error), ObjectTransfer.replacer)}}`;
|
|
119
|
+
return `{"type": ${3 /* MessageType.ReplyErr */}, "id": "${callId}", "res": ${JSON.stringify(transformErrorForSerialization(error), ObjectTransfer.replacer)}}`;
|
|
120
120
|
}
|
|
121
121
|
catch (e) {
|
|
122
122
|
if (logger) {
|
|
123
123
|
logger.error('error', error);
|
|
124
124
|
}
|
|
125
|
-
return `{"type": ${3 /* ReplyErr */}, "id": "${callId}", "res": {}}`;
|
|
125
|
+
return `{"type": ${3 /* MessageType.ReplyErr */}, "id": "${callId}", "res": {}}`;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -190,16 +190,16 @@ class RPCProtocol {
|
|
|
190
190
|
_receiveOneMessage(rawmsg) {
|
|
191
191
|
const msg = JSON.parse(rawmsg, ObjectTransfer.reviver);
|
|
192
192
|
switch (msg.type) {
|
|
193
|
-
case 1 /* Request */:
|
|
193
|
+
case 1 /* MessageType.Request */:
|
|
194
194
|
this._receiveRequest(msg);
|
|
195
195
|
break;
|
|
196
|
-
case 2 /* Reply */:
|
|
196
|
+
case 2 /* MessageType.Reply */:
|
|
197
197
|
this._receiveReply(msg);
|
|
198
198
|
break;
|
|
199
|
-
case 4 /* Cancel */:
|
|
199
|
+
case 4 /* MessageType.Cancel */:
|
|
200
200
|
this._receiveCancel(msg);
|
|
201
201
|
break;
|
|
202
|
-
case 3 /* ReplyErr */:
|
|
202
|
+
case 3 /* MessageType.ReplyErr */:
|
|
203
203
|
this._receiveError(msg);
|
|
204
204
|
break;
|
|
205
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcProtocol.js","sourceRoot":"","sources":["../../src/common/rpcProtocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rpcProtocol.js","sourceRoot":"","sources":["../../src/common/rpcProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface CloseMessage {
|
|
|
33
33
|
code: number;
|
|
34
34
|
reason: string;
|
|
35
35
|
}
|
|
36
|
-
export
|
|
36
|
+
export type ChannelMessage = HeartbeatMessage | ClientMessage | OpenMessage | ReadyMessage | DataMessage | CloseMessage;
|
|
37
37
|
export declare class WSChannel implements IWebSocket {
|
|
38
38
|
id: number | string;
|
|
39
39
|
channelPath: string;
|
|
@@ -56,7 +56,7 @@ export declare class WSChannel implements IWebSocket {
|
|
|
56
56
|
close(code: number, reason: string): void;
|
|
57
57
|
onClose(cb: (code: number, reason: string) => void): void;
|
|
58
58
|
}
|
|
59
|
-
export
|
|
59
|
+
export type MessageString = string & {
|
|
60
60
|
origin?: any;
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,GAAG,IAAI,OAAA,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,
|
|
1
|
+
{"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,GAAG,IAAI,OAAA,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAExH,qBAAa,SAAU,YAAW,UAAU;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAuB;IAChC,UAAU,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,SAAS,CAAyC;IAEnD,iBAAiB,EAAE,GAAG,CAAC;gBAElB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAOpE,iBAAiB,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAKlE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG;IAGhC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;IAG/B,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI;IAGvB,KAAK;IAQL,aAAa,CAAC,GAAG,EAAE,cAAc;IASjC,IAAI,CAAC,IAAI,EAAE,MAAM;IAUjB,IAAI,CAAC,OAAO,EAAE,MAAM;IASpB,OAAO;IACP,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKlC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;CAGnD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACnC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAgB;IACpB,OAAO,SAAoB;IAElC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI9C,SAAS,CAAC,UAAU,EAAE,MAAM;;;;;CAS7B"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-connection",
|
|
3
|
-
"version": "2.21.
|
|
3
|
+
"version": "2.21.10-next-1671764634.0",
|
|
4
4
|
"files": [
|
|
5
|
-
"lib"
|
|
5
|
+
"lib",
|
|
6
|
+
"src"
|
|
6
7
|
],
|
|
7
8
|
"license": "MIT",
|
|
8
9
|
"main": "lib/index.js",
|
|
9
10
|
"typings": "lib/index.d.ts",
|
|
10
11
|
"scripts": {
|
|
11
|
-
"prepublishOnly": "
|
|
12
|
+
"prepublishOnly": "yarn run build",
|
|
12
13
|
"build": "tsc --build ../../configs/ts/references/tsconfig.connection.json"
|
|
13
14
|
},
|
|
14
15
|
"repository": {
|
|
@@ -16,15 +17,15 @@
|
|
|
16
17
|
"url": "git@github.com:opensumi/core.git"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"@opensumi/ide-core-common": "2.21.
|
|
20
|
+
"@opensumi/ide-core-common": "2.21.10-next-1671764634.0",
|
|
20
21
|
"@opensumi/vscode-jsonrpc": "^8.0.0-next.2",
|
|
21
22
|
"path-match": "^1.2.4",
|
|
23
|
+
"reconnecting-websocket": "^4.2.0",
|
|
22
24
|
"ws": "^8.9.0"
|
|
23
25
|
},
|
|
24
26
|
"devDependencies": {
|
|
25
|
-
"@opensumi/ide-components": "2.21.9",
|
|
26
27
|
"@opensumi/ide-dev-tool": "^1.3.1",
|
|
27
28
|
"mock-socket": "^9.0.2"
|
|
28
29
|
},
|
|
29
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "206024891162e280483c014921a8e5ecf668b009"
|
|
30
31
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ws-channel-handler';
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import ReconnectingWebSocket from 'reconnecting-websocket';
|
|
2
|
+
|
|
3
|
+
import { uuid } from '@opensumi/ide-core-common';
|
|
4
|
+
import { IReporterService, REPORT_NAME, UrlProvider } from '@opensumi/ide-core-common';
|
|
5
|
+
|
|
6
|
+
import { stringify, parse } from '../common/utils';
|
|
7
|
+
import { WSChannel, MessageString } from '../common/ws-channel';
|
|
8
|
+
|
|
9
|
+
// 前台链接管理类
|
|
10
|
+
export class WSChannelHandler {
|
|
11
|
+
public connection: WebSocket;
|
|
12
|
+
private channelMap: Map<number | string, WSChannel> = new Map();
|
|
13
|
+
private logger = console;
|
|
14
|
+
public clientId: string;
|
|
15
|
+
private heartbeatMessageTimer: NodeJS.Timer | null;
|
|
16
|
+
private reporterService: IReporterService;
|
|
17
|
+
|
|
18
|
+
constructor(public wsPath: UrlProvider, logger: any, public protocols?: string[], clientId?: string) {
|
|
19
|
+
this.logger = logger || this.logger;
|
|
20
|
+
this.clientId = clientId || `CLIENT_ID_${uuid()}`;
|
|
21
|
+
this.connection = new ReconnectingWebSocket(wsPath, protocols, {}) as WebSocket; // new WebSocket(wsPath, protocols);
|
|
22
|
+
}
|
|
23
|
+
// 为解决建立连接之后,替换成可落盘的 logger
|
|
24
|
+
replaceLogger(logger: any) {
|
|
25
|
+
if (logger) {
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
setReporter(reporterService: IReporterService) {
|
|
30
|
+
this.reporterService = reporterService;
|
|
31
|
+
}
|
|
32
|
+
private clientMessage() {
|
|
33
|
+
const clientMsg: MessageString = stringify({
|
|
34
|
+
kind: 'client',
|
|
35
|
+
clientId: this.clientId,
|
|
36
|
+
});
|
|
37
|
+
this.connection.send(clientMsg);
|
|
38
|
+
}
|
|
39
|
+
private heartbeatMessage() {
|
|
40
|
+
if (this.heartbeatMessageTimer) {
|
|
41
|
+
clearTimeout(this.heartbeatMessageTimer);
|
|
42
|
+
}
|
|
43
|
+
this.heartbeatMessageTimer = global.setTimeout(() => {
|
|
44
|
+
const msg = stringify({
|
|
45
|
+
kind: 'heartbeat',
|
|
46
|
+
clientId: this.clientId,
|
|
47
|
+
});
|
|
48
|
+
this.connection.send(msg);
|
|
49
|
+
this.heartbeatMessage();
|
|
50
|
+
}, 5000);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public async initHandler() {
|
|
54
|
+
this.connection.onmessage = (e) => {
|
|
55
|
+
// 一个心跳周期内如果有收到消息,则不需要再发送心跳
|
|
56
|
+
this.heartbeatMessage();
|
|
57
|
+
|
|
58
|
+
const msg = parse(e.data);
|
|
59
|
+
|
|
60
|
+
if (msg.id) {
|
|
61
|
+
const channel = this.channelMap.get(msg.id);
|
|
62
|
+
if (channel) {
|
|
63
|
+
if (msg.kind === 'data' && !(channel as any).fireMessage) {
|
|
64
|
+
// 要求前端发送初始化消息,但后端最先发送消息时,前端并未准备好
|
|
65
|
+
this.logger.error('channel not ready!', msg);
|
|
66
|
+
}
|
|
67
|
+
channel.handleMessage(msg);
|
|
68
|
+
} else {
|
|
69
|
+
this.logger.warn(`channel ${msg.id} not found`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
await new Promise((resolve) => {
|
|
74
|
+
this.connection.addEventListener('open', () => {
|
|
75
|
+
this.clientMessage();
|
|
76
|
+
this.heartbeatMessage();
|
|
77
|
+
resolve(undefined);
|
|
78
|
+
// 重连 channel
|
|
79
|
+
if (this.channelMap.size) {
|
|
80
|
+
this.channelMap.forEach((channel) => {
|
|
81
|
+
channel.onOpen(() => {
|
|
82
|
+
this.reporterService && this.reporterService.point(REPORT_NAME.CHANNEL_RECONNECT);
|
|
83
|
+
this.logger && this.logger.log(`channel reconnect ${this.clientId}:${channel.channelPath}`);
|
|
84
|
+
});
|
|
85
|
+
channel.open(channel.channelPath);
|
|
86
|
+
|
|
87
|
+
// 针对前端需要重新设置下后台状态的情况
|
|
88
|
+
if (channel.fireReOpen) {
|
|
89
|
+
channel.fireReOpen();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
private getChannelSend = (connection) => (content: string) => {
|
|
97
|
+
connection.send(content, (err: Error) => {
|
|
98
|
+
if (err) {
|
|
99
|
+
this.logger.warn(err);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
public async openChannel(channelPath: string) {
|
|
104
|
+
const channelSend = this.getChannelSend(this.connection);
|
|
105
|
+
const channelId = `${this.clientId}:${channelPath}`;
|
|
106
|
+
const channel = new WSChannel(channelSend, channelId);
|
|
107
|
+
this.channelMap.set(channel.id, channel);
|
|
108
|
+
|
|
109
|
+
await new Promise((resolve) => {
|
|
110
|
+
channel.onOpen(() => {
|
|
111
|
+
resolve(undefined);
|
|
112
|
+
});
|
|
113
|
+
channel.open(channelPath);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
return channel;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
public dispose() {
|
|
120
|
+
if (this.heartbeatMessageTimer) {
|
|
121
|
+
clearTimeout(this.heartbeatMessageTimer);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { MessageConnection } from '@opensumi/vscode-jsonrpc/lib/common/connection';
|
|
2
|
+
|
|
3
|
+
import { RPCProxy, NOTREGISTERMETHOD } from './proxy';
|
|
4
|
+
|
|
5
|
+
export type RPCServiceMethod = (...args: any[]) => any;
|
|
6
|
+
export type ServiceProxy = any;
|
|
7
|
+
|
|
8
|
+
export enum ServiceType {
|
|
9
|
+
Service,
|
|
10
|
+
Stub,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class RPCServiceStub {
|
|
14
|
+
constructor(private serviceName: string, private center, private type: ServiceType) {
|
|
15
|
+
if (this.type === ServiceType.Service) {
|
|
16
|
+
this.center.registerService(serviceName, this.type);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async ready() {
|
|
21
|
+
return this.center.when();
|
|
22
|
+
}
|
|
23
|
+
getNotificationName(name: string) {
|
|
24
|
+
return `on:${this.serviceName}:${name}`;
|
|
25
|
+
}
|
|
26
|
+
getRequestName(name: string) {
|
|
27
|
+
return `${this.serviceName}:${name}`;
|
|
28
|
+
}
|
|
29
|
+
// 服务方
|
|
30
|
+
on(name: string, method: RPCServiceMethod) {
|
|
31
|
+
this.onRequest(name, method);
|
|
32
|
+
}
|
|
33
|
+
getServiceMethod(service): string[] {
|
|
34
|
+
let props: any[] = [];
|
|
35
|
+
|
|
36
|
+
if (/^\s*class/.test(service.constructor.toString())) {
|
|
37
|
+
let obj = service;
|
|
38
|
+
do {
|
|
39
|
+
props = props.concat(Object.getOwnPropertyNames(obj));
|
|
40
|
+
} while ((obj = Object.getPrototypeOf(obj)));
|
|
41
|
+
props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
|
|
42
|
+
} else {
|
|
43
|
+
for (const prop in service) {
|
|
44
|
+
if (service[prop] && typeof service[prop] === 'function') {
|
|
45
|
+
props.push(prop);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return props;
|
|
51
|
+
}
|
|
52
|
+
onRequestService(service: any) {
|
|
53
|
+
const methods = this.getServiceMethod(service);
|
|
54
|
+
for (const method of methods) {
|
|
55
|
+
this.onRequest(method, service[method].bind(service));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
onRequest(name: string, method: RPCServiceMethod) {
|
|
60
|
+
this.center.onRequest(this.getMethodName(name), method);
|
|
61
|
+
}
|
|
62
|
+
broadcast(name: string, ...args) {
|
|
63
|
+
return this.center.broadcast(this.getMethodName(name), ...args);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getMethodName(name: string) {
|
|
67
|
+
return name.startsWith('on') ? this.getNotificationName(name) : this.getRequestName(name);
|
|
68
|
+
}
|
|
69
|
+
getProxy = <T>() =>
|
|
70
|
+
new Proxy<RPCServiceStub & T>(this as any, {
|
|
71
|
+
// 调用方
|
|
72
|
+
get: (target, prop: string) => {
|
|
73
|
+
if (!target[prop]) {
|
|
74
|
+
if (typeof prop === 'symbol') {
|
|
75
|
+
return Promise.resolve();
|
|
76
|
+
} else {
|
|
77
|
+
return (...args) =>
|
|
78
|
+
this.ready().then(() => {
|
|
79
|
+
const name = this.getMethodName(prop);
|
|
80
|
+
return Promise.all(this.center.serviceProxy.map((proxy) => proxy[name](...args)))
|
|
81
|
+
.then((result) => result.filter((res) => res !== NOTREGISTERMETHOD))
|
|
82
|
+
.then((result) => (result.length === 1 ? result[0] : result));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
return target[prop];
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function initRPCService<T = void>(center: RPCServiceCenter) {
|
|
93
|
+
return {
|
|
94
|
+
createRPCService: (name: string, service?: any) => {
|
|
95
|
+
const proxy = new RPCServiceStub(name, center, ServiceType.Service).getProxy<T>();
|
|
96
|
+
if (service) {
|
|
97
|
+
proxy.onRequestService(service);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return proxy;
|
|
101
|
+
},
|
|
102
|
+
getRPCService: (name: string) => new RPCServiceStub(name, center, ServiceType.Stub).getProxy<T>(),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
interface IBench {
|
|
107
|
+
registerService: (service: string) => void;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface RPCMessageConnection extends MessageConnection {
|
|
111
|
+
uid?: string;
|
|
112
|
+
writer?: any;
|
|
113
|
+
reader?: any;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function createRPCService<T = void>(name: string, center: RPCServiceCenter): any {
|
|
117
|
+
return new RPCServiceStub(name, center, ServiceType.Service).getProxy<T>();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function getRPCService<T = void>(name: string, center: RPCServiceCenter): any {
|
|
121
|
+
return new RPCServiceStub(name, center, ServiceType.Stub).getProxy<T>();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export class RPCServiceCenter {
|
|
125
|
+
public uid: string;
|
|
126
|
+
public rpcProxy: RPCProxy[] = [];
|
|
127
|
+
public serviceProxy: ServiceProxy[] = [];
|
|
128
|
+
private connection: Array<MessageConnection> = [];
|
|
129
|
+
private serviceMethodMap = { client: undefined };
|
|
130
|
+
|
|
131
|
+
private createService: string[] = [];
|
|
132
|
+
private getService: string[] = [];
|
|
133
|
+
|
|
134
|
+
private connectionPromise: Promise<void>;
|
|
135
|
+
private connectionPromiseResolve: () => void;
|
|
136
|
+
private logger;
|
|
137
|
+
|
|
138
|
+
constructor(private bench?: IBench, logger?: any) {
|
|
139
|
+
this.uid = 'RPCServiceCenter:' + process.pid;
|
|
140
|
+
this.connectionPromise = new Promise((resolve) => {
|
|
141
|
+
this.connectionPromiseResolve = resolve;
|
|
142
|
+
});
|
|
143
|
+
this.logger = logger || console;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
registerService(serviceName: string, type: ServiceType): void {
|
|
147
|
+
if (type === ServiceType.Service) {
|
|
148
|
+
this.createService.push(serviceName);
|
|
149
|
+
if (this.bench) {
|
|
150
|
+
this.bench.registerService(serviceName);
|
|
151
|
+
}
|
|
152
|
+
} else if (type === ServiceType.Stub) {
|
|
153
|
+
this.getService.push(serviceName);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
when() {
|
|
158
|
+
return this.connectionPromise;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
setConnection(connection: MessageConnection) {
|
|
162
|
+
if (!this.connection.length) {
|
|
163
|
+
this.connectionPromiseResolve();
|
|
164
|
+
}
|
|
165
|
+
this.connection.push(connection);
|
|
166
|
+
|
|
167
|
+
const rpcProxy = new RPCProxy(this.serviceMethodMap, this.logger);
|
|
168
|
+
rpcProxy.listen(connection);
|
|
169
|
+
this.rpcProxy.push(rpcProxy);
|
|
170
|
+
|
|
171
|
+
const serviceProxy = rpcProxy.createProxy();
|
|
172
|
+
this.serviceProxy.push(serviceProxy);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
removeConnection(connection: MessageConnection) {
|
|
176
|
+
const removeIndex = this.connection.indexOf(connection);
|
|
177
|
+
if (removeIndex !== -1) {
|
|
178
|
+
this.connection.splice(removeIndex, 1);
|
|
179
|
+
this.rpcProxy.splice(removeIndex, 1);
|
|
180
|
+
this.serviceProxy.splice(removeIndex, 1);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return removeIndex !== -1;
|
|
184
|
+
}
|
|
185
|
+
onRequest(name, method: RPCServiceMethod) {
|
|
186
|
+
if (!this.connection.length) {
|
|
187
|
+
this.serviceMethodMap[name] = method;
|
|
188
|
+
} else {
|
|
189
|
+
this.rpcProxy.forEach((proxy) => {
|
|
190
|
+
proxy.listenService({ [name]: method });
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
broadcast(name, ...args): Promise<any> {
|
|
195
|
+
return Promise.all(this.serviceProxy.map((proxy) => proxy[name](...args)) as Promise<any>[])
|
|
196
|
+
.then((result) => result.filter((res) => res !== NOTREGISTERMETHOD))
|
|
197
|
+
.then((result) => (result.length === 1 ? result[0] : result));
|
|
198
|
+
}
|
|
199
|
+
}
|