@opensumi/ide-connection 3.1.4 → 3.1.5-next-1719913150.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,35 +1,35 @@
1
1
  export type ChannelMessage = PingMessage | PongMessage | OpenMessage | ServerReadyMessage | DataMessage | BinaryMessage | CloseMessage | ErrorMessage;
2
+ export interface BaseMessage {
3
+ kind: string;
4
+ id: string;
5
+ traceId?: string;
6
+ }
2
7
  /**
3
8
  * `ping` and `pong` are used to detect whether the connection is alive.
4
9
  */
5
- export interface PingMessage {
10
+ export interface PingMessage extends BaseMessage {
6
11
  kind: 'ping';
7
- id: string;
8
12
  }
9
13
  /**
10
14
  * when server receive a `ping` message, it should reply a `pong` message, vice versa.
11
15
  */
12
- export interface PongMessage {
16
+ export interface PongMessage extends BaseMessage {
13
17
  kind: 'pong';
14
- id: string;
15
18
  }
16
19
  /**
17
20
  * `data` message indicate that the channel has received some data.
18
21
  * the `content` field is the data, it should be a string.
19
22
  */
20
- export interface DataMessage {
23
+ export interface DataMessage extends BaseMessage {
21
24
  kind: 'data';
22
- id: string;
23
25
  content: string;
24
26
  }
25
- export interface BinaryMessage {
27
+ export interface BinaryMessage extends BaseMessage {
26
28
  kind: 'binary';
27
- id: string;
28
29
  binary: Uint8Array;
29
30
  }
30
- export interface CloseMessage {
31
+ export interface CloseMessage extends BaseMessage {
31
32
  kind: 'close';
32
- id: string;
33
33
  code: number;
34
34
  reason: string;
35
35
  }
@@ -38,17 +38,16 @@ export interface CloseMessage {
38
38
  * `path` is used to identify which handler should be used to handle the channel.
39
39
  * `clientId` is used to identify the client.
40
40
  */
41
- export interface OpenMessage {
41
+ export interface OpenMessage extends BaseMessage {
42
42
  kind: 'open';
43
- id: string;
44
43
  path: string;
45
44
  clientId: string;
46
- connectionToken: string;
45
+ traceId: string;
47
46
  }
48
47
  export declare enum ErrorMessageCode {
49
48
  ChannelNotFound = 1
50
49
  }
51
- export interface ErrorMessage {
50
+ export interface ErrorMessage extends BaseMessage {
52
51
  kind: 'error';
53
52
  id: string;
54
53
  code: ErrorMessageCode;
@@ -58,9 +57,9 @@ export interface ErrorMessage {
58
57
  * when server receive a `open` message, it should reply a `server-ready` message.
59
58
  * this is indicate that the channel is ready to use.
60
59
  */
61
- export interface ServerReadyMessage {
60
+ export interface ServerReadyMessage extends BaseMessage {
62
61
  kind: 'server-ready';
63
62
  id: string;
64
- token: string;
63
+ traceId: string;
65
64
  }
66
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/channel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oBAAY,gBAAgB;IAC1B,eAAe,IAAI;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/channel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,gBAAgB;IAC1B,eAAe,IAAI;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,gBAAgB,EAIjB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,qBAAa,gBAAiB,YAAW,WAAW;IAatC,OAAO,CAAC,KAAK,CAAC;IAZ1B,OAAO,CAAC,YAAY,CAAyB;IAEtC,GAAG,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,gBAAgB,CAAiD;IAEzE,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAU;gBAEJ,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,OAAO;IAKpD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IACtE,WAAW,CACT,eAAe,EAAE,gBAAgB,EACjC,0BAA0B,GAAE,MAA2C;IAMzE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAQ7D,KAAK;IAIL,YAAY,CAAC,QAAQ,EAAE,aAAa;IAMpC,iBAAiB,CAAC,UAAU,EAAE,cAAc;;;IAoB5C,aAAa,CAAC,UAAU,EAAE,iBAAiB;;;IAkB3C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAItE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAM5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IA2DjF,OAAO,IAAI,IAAI;CAGhB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEpE;AACD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE/D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE9D"}
1
+ {"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,gBAAgB,EAIjB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,qBAAa,gBAAiB,YAAW,WAAW;IAatC,OAAO,CAAC,KAAK,CAAC;IAZ1B,OAAO,CAAC,YAAY,CAAyB;IAEtC,GAAG,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,gBAAgB,CAAiD;IAEzE,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAAU;gBAEJ,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,OAAO;IAKpD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IACtE,WAAW,CACT,eAAe,EAAE,gBAAgB,EACjC,0BAA0B,GAAE,MAA2C;IAMzE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAQ7D,KAAK;IAIL,YAAY,CAAC,QAAQ,EAAE,aAAa;IAMpC,iBAAiB,CAAC,UAAU,EAAE,cAAc;;;IAoB5C,aAAa,CAAC,UAAU,EAAE,iBAAiB;;;IAkB3C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAItE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAM5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IA2DjF,OAAO,IAAI,IAAI;CAKhB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEpE;AACD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE/D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE9D"}
@@ -121,6 +121,8 @@ class RPCServiceCenter {
121
121
  }
122
122
  dispose() {
123
123
  this._disposables.dispose();
124
+ this.proxies.forEach((proxy) => proxy.dispose());
125
+ this.proxies = [];
124
126
  }
125
127
  }
126
128
  exports.RPCServiceCenter = RPCServiceCenter;
@@ -1 +1 @@
1
- {"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":";;;AAAA,+DAQmC;AACnC,2DAA4D;AAE5D,4CAAqD;AAGrD,oCAA0E;AAE1E,mCAA+C;AAE/C,yCAA+D;AAI/D,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAE/C,MAAa,gBAAgB;IAa3B,YAAoB,KAAc,EAAE,MAAgB;QAAhC,UAAK,GAAL,KAAK,CAAS;QAZ1B,iBAAY,GAAG,IAAI,iCAAe,EAAE,CAAC;QAIrC,YAAO,GAAqB,EAAE,CAAC;QAE/B,oBAAe,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,0BAAe,EAAE,CAAC,CAAC;QAC/D,qBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,2BAAgB,EAAE,CAAC,CAAC;QAEjE,aAAQ,GAAG,IAAI,0BAAQ,EAAQ,CAAC;QAShC,qBAAgB,GAAW,kCAAkC,CAAC;QALpE,IAAI,CAAC,GAAG,GAAG,IAAA,8BAAY,EAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;IAClC,CAAC;IAID,WAAW,CACT,eAAiC,EACjC,6BAAqC,kCAAkC;QAEvE,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,IAAiB;QACpD,IAAI,IAAI,KAAK,mBAAW,CAAC,OAAO,EAAE;YAChC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,QAAuB;QAClC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC1C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,UAA0B;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,UAA6B;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QAED,MAAM,KAAK,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,KAAa,EAAE,MAAwB;QACpE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,OAAY;QAChD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE;YAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,KAAa,EAAE,GAAG,IAAW;QAChE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE/C,IAAI,KAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,6BAAW,CAAC,mBAAmB,CAAC,CAAC;SACrE;QAED,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpG,MAAM,cAAc,GAAG,EAAW,CAAC;QACnC,MAAM,MAAM,GAAG,EAAW,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE;YAC/B,IAAI,CAAC,KAAK,iCAAqB,EAAE;gBAC/B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,kCAAkC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACvG;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CACX,IAAI,EACJ;oBACE,OAAO,EAAE,KAAK;iBACf,EACD;oBACE,0BAA0B,EAAE,IAAI,CAAC,gBAAgB;iBAClD,CACF,CAAC;aACH;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,kDAAkD,CAAC,CAAC;SAC5F;QAED,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO,CACX,IAAI,EACJ;gBACE,OAAO,EAAE,IAAI;aACd,EACD;gBACE,0BAA0B,EAAE,IAAI,CAAC,gBAAgB;aAClD,CACF,CAAC;SACH;QAED,yHAAyH;QACzH,kGAAkG;QAClG,8BAA8B;QAC9B,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AA9JD,4CA8JC;AAED,SAAgB,mBAAmB,CAAC,WAAmB,EAAE,IAAY;IACnE,OAAO,MAAM,WAAW,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAFD,kDAEC;AACD,SAAgB,cAAc,CAAC,WAAmB,EAAE,IAAY;IAC9D,OAAO,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAC,WAAmB,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC;AAFD,sCAEC"}
@@ -30,13 +30,13 @@ export declare const OpenProtocol: {
30
30
  clientId: {
31
31
  type: import("@furyjs/fury").InternalSerializerType.STRING;
32
32
  };
33
- id: {
33
+ path: {
34
34
  type: import("@furyjs/fury").InternalSerializerType.STRING;
35
35
  };
36
- path: {
36
+ traceId: {
37
37
  type: import("@furyjs/fury").InternalSerializerType.STRING;
38
38
  };
39
- connectionToken: {
39
+ id: {
40
40
  type: import("@furyjs/fury").InternalSerializerType.STRING;
41
41
  };
42
42
  } | undefined;
@@ -47,10 +47,10 @@ export declare const ServerReadyProtocol: {
47
47
  options: {
48
48
  tag: string;
49
49
  props: {
50
- id: {
50
+ traceId: {
51
51
  type: import("@furyjs/fury").InternalSerializerType.STRING;
52
52
  };
53
- token: {
53
+ id: {
54
54
  type: import("@furyjs/fury").InternalSerializerType.STRING;
55
55
  };
56
56
  } | undefined;
@@ -61,15 +61,15 @@ export declare const ErrorProtocol: {
61
61
  options: {
62
62
  tag: string;
63
63
  props: {
64
- id: {
65
- type: import("@furyjs/fury").InternalSerializerType.STRING;
66
- };
67
64
  code: {
68
65
  type: import("@furyjs/fury").InternalSerializerType.UINT16;
69
66
  };
70
67
  message: {
71
68
  type: import("@furyjs/fury").InternalSerializerType.STRING;
72
69
  };
70
+ id: {
71
+ type: import("@furyjs/fury").InternalSerializerType.STRING;
72
+ };
73
73
  } | undefined;
74
74
  };
75
75
  };
@@ -78,10 +78,10 @@ export declare const DataProtocol: {
78
78
  options: {
79
79
  tag: string;
80
80
  props: {
81
- id: {
81
+ content: {
82
82
  type: import("@furyjs/fury").InternalSerializerType.STRING;
83
83
  };
84
- content: {
84
+ id: {
85
85
  type: import("@furyjs/fury").InternalSerializerType.STRING;
86
86
  };
87
87
  } | undefined;
@@ -92,12 +92,12 @@ export declare const BinaryProtocol: {
92
92
  options: {
93
93
  tag: string;
94
94
  props: {
95
- id: {
96
- type: import("@furyjs/fury").InternalSerializerType.STRING;
97
- };
98
95
  binary: {
99
96
  type: import("@furyjs/fury").InternalSerializerType.BINARY;
100
97
  };
98
+ id: {
99
+ type: import("@furyjs/fury").InternalSerializerType.STRING;
100
+ };
101
101
  } | undefined;
102
102
  };
103
103
  };
@@ -106,15 +106,15 @@ export declare const CloseProtocol: {
106
106
  options: {
107
107
  tag: string;
108
108
  props: {
109
- id: {
110
- type: import("@furyjs/fury").InternalSerializerType.STRING;
111
- };
112
109
  code: {
113
110
  type: import("@furyjs/fury").InternalSerializerType.UINT32;
114
111
  };
115
112
  reason: {
116
113
  type: import("@furyjs/fury").InternalSerializerType.STRING;
117
114
  };
115
+ id: {
116
+ type: import("@furyjs/fury").InternalSerializerType.STRING;
117
+ };
118
118
  } | undefined;
119
119
  };
120
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fury.d.ts","sourceRoot":"","sources":["../../../src/common/serializer/fury.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,YAAY;;;;;;;;;;CAEvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;CAEvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAKvB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAG9B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAIxB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAGvB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAGzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAIxB,CAAC;AAaH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,UAAU,CAAc,CAAC"}
1
+ {"version":3,"file":"fury.d.ts","sourceRoot":"","sources":["../../../src/common/serializer/fury.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQtC,eAAO,MAAM,YAAY;;;;;;;;;;CAEvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;CAEvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAKvB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAG9B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAIxB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAGvB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAGzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAIxB,CAAC;AAaH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,UAAU,CAAc,CAAC"}
@@ -3,40 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.furySerializer = exports.CloseProtocol = exports.BinaryProtocol = exports.DataProtocol = exports.ErrorProtocol = exports.ServerReadyProtocol = exports.OpenProtocol = exports.PongProtocol = exports.PingProtocol = void 0;
4
4
  const fury_1 = require("@furyjs/fury");
5
5
  const one_of_1 = require("../fury-extends/one-of");
6
- exports.PingProtocol = fury_1.Type.object('ping', {
7
- id: fury_1.Type.string(),
8
- });
9
- exports.PongProtocol = fury_1.Type.object('pong', {
10
- id: fury_1.Type.string(),
11
- });
12
- exports.OpenProtocol = fury_1.Type.object('open', {
13
- clientId: fury_1.Type.string(),
14
- id: fury_1.Type.string(),
15
- path: fury_1.Type.string(),
16
- connectionToken: fury_1.Type.string(),
17
- });
18
- exports.ServerReadyProtocol = fury_1.Type.object('server-ready', {
19
- id: fury_1.Type.string(),
20
- token: fury_1.Type.string(),
21
- });
22
- exports.ErrorProtocol = fury_1.Type.object('error', {
23
- id: fury_1.Type.string(),
24
- code: fury_1.Type.uint16(),
25
- message: fury_1.Type.string(),
26
- });
27
- exports.DataProtocol = fury_1.Type.object('data', {
28
- id: fury_1.Type.string(),
29
- content: fury_1.Type.string(),
30
- });
31
- exports.BinaryProtocol = fury_1.Type.object('binary', {
32
- id: fury_1.Type.string(),
33
- binary: fury_1.Type.binary(),
34
- });
35
- exports.CloseProtocol = fury_1.Type.object('close', {
36
- id: fury_1.Type.string(),
37
- code: fury_1.Type.uint32(),
38
- reason: fury_1.Type.string(),
39
- });
6
+ function baseFields() {
7
+ return {
8
+ id: fury_1.Type.string(),
9
+ };
10
+ }
11
+ exports.PingProtocol = fury_1.Type.object('ping', Object.assign({}, baseFields()));
12
+ exports.PongProtocol = fury_1.Type.object('pong', Object.assign({}, baseFields()));
13
+ exports.OpenProtocol = fury_1.Type.object('open', Object.assign(Object.assign({}, baseFields()), { clientId: fury_1.Type.string(), path: fury_1.Type.string(), traceId: fury_1.Type.string() }));
14
+ exports.ServerReadyProtocol = fury_1.Type.object('server-ready', Object.assign(Object.assign({}, baseFields()), { traceId: fury_1.Type.string() }));
15
+ exports.ErrorProtocol = fury_1.Type.object('error', Object.assign(Object.assign({}, baseFields()), { code: fury_1.Type.uint16(), message: fury_1.Type.string() }));
16
+ exports.DataProtocol = fury_1.Type.object('data', Object.assign(Object.assign({}, baseFields()), { content: fury_1.Type.string() }));
17
+ exports.BinaryProtocol = fury_1.Type.object('binary', Object.assign(Object.assign({}, baseFields()), { binary: fury_1.Type.binary() }));
18
+ exports.CloseProtocol = fury_1.Type.object('close', Object.assign(Object.assign({}, baseFields()), { code: fury_1.Type.uint32(), reason: fury_1.Type.string() }));
40
19
  const serializer = (0, one_of_1.oneOf)([
41
20
  exports.PingProtocol,
42
21
  exports.PongProtocol,
@@ -1 +1 @@
1
- {"version":3,"file":"fury.js","sourceRoot":"","sources":["../../../src/common/serializer/fury.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAGpC,mDAA+C;AAIlC,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9C,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9C,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE;IACvB,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,eAAe,EAAE,WAAI,CAAC,MAAM,EAAE;CAC/B,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,WAAI,CAAC,MAAM,CAAC,cAAc,EAAE;IAC7D,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,WAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IAChD,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9C,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IAClD,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,WAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IAChD,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAA,cAAK,EAAC;IACvB,oBAAY;IACZ,oBAAY;IACZ,oBAAY;IACZ,2BAAmB;IACnB,oBAAY;IACZ,sBAAc;IACd,qBAAa;IACb,qBAAa;CACd,CAAC,CAAC;AAEU,QAAA,cAAc,GAA4C,UAAU,CAAC"}
1
+ {"version":3,"file":"fury.js","sourceRoot":"","sources":["../../../src/common/serializer/fury.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAGpC,mDAA+C;AAI/C,SAAS,UAAU;IACjB,OAAO;QACL,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;KAClB,CAAC;AACJ,CAAC;AAEY,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,oBACzC,UAAU,EAAE,EACf,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,oBACzC,UAAU,EAAE,EACf,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,kCACzC,UAAU,EAAE,KACf,QAAQ,EAAE,WAAI,CAAC,MAAM,EAAE,EACvB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE,EACnB,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE,IACtB,CAAC;AAEU,QAAA,mBAAmB,GAAG,WAAI,CAAC,MAAM,CAAC,cAAc,kCACxD,UAAU,EAAE,KACf,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE,IACtB,CAAC;AAEU,QAAA,aAAa,GAAG,WAAI,CAAC,MAAM,CAAC,OAAO,kCAC3C,UAAU,EAAE,KACf,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE,EACnB,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE,IACtB,CAAC;AAEU,QAAA,YAAY,GAAG,WAAI,CAAC,MAAM,CAAC,MAAM,kCACzC,UAAU,EAAE,KACf,OAAO,EAAE,WAAI,CAAC,MAAM,EAAE,IACtB,CAAC;AAEU,QAAA,cAAc,GAAG,WAAI,CAAC,MAAM,CAAC,QAAQ,kCAC7C,UAAU,EAAE,KACf,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE,IACrB,CAAC;AAEU,QAAA,aAAa,GAAG,WAAI,CAAC,MAAM,CAAC,OAAO,kCAC3C,UAAU,EAAE,KACf,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE,EACnB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE,IACrB,CAAC;AAEH,MAAM,UAAU,GAAG,IAAA,cAAK,EAAC;IACvB,oBAAY;IACZ,oBAAY;IACZ,oBAAY;IACZ,2BAAmB;IACnB,oBAAY;IACZ,sBAAc;IACd,qBAAa;IACb,qBAAa;CACd,CAAC,CAAC;AAEU,QAAA,cAAc,GAA4C,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.d.ts","sourceRoot":"","sources":["../../src/common/server-handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,SAAS,CAAkC;IAEnD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAqBnD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAcxD,GAAG,CAAC,WAAW,EAAE,MAAM;IAGvB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOxD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAsB9D,MAAM;CAGP;AAED,eAAO,MAAM,wBAAwB,0BAAiC,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;CAC/C;AAED,8BAAsB,wBAAwB;IAMzB,SAAS,EAAE,MAAM;IAAE,SAAS,CAAC,MAAM,EAAE,OAAO;IAL/D,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAa;IAE/D,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAEvD,UAAU,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAkB;gBAC3C,SAAS,EAAE,MAAM,EAAY,MAAM,GAAE,OAAiB,EAAE,OAAO,GAAE,qBAA0B;IAM9G,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAE3C,OAAO,CAAC,SAAS;IAWjB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;IAiE1D,OAAO;CAKR;AAED,eAAO,MAAM,qBAAqB,eAAe,CAAC"}
1
+ {"version":3,"file":"server-handler.d.ts","sourceRoot":"","sources":["../../src/common/server-handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,SAAS,CAAkC;IAEnD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAqBnD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAcxD,GAAG,CAAC,WAAW,EAAE,MAAM;IAGvB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOxD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAsB9D,MAAM;CAGP;AAED,eAAO,MAAM,wBAAwB,0BAAiC,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;CAC/C;AAOD,8BAAsB,wBAAwB;IAMzB,SAAS,EAAE,MAAM;IAAE,SAAS,CAAC,MAAM,EAAE,OAAO;IAL/D,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAa;IAE/D,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAEvD,UAAU,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAkB;gBAC3C,SAAS,EAAE,MAAM,EAAY,MAAM,GAAE,OAAiB,EAAE,OAAO,GAAE,qBAA0B;IAM9G,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAE3C,OAAO,CAAC,SAAS;IAWjB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;IAgE1D,OAAO;CAKR;AAED,eAAO,MAAM,qBAAqB,eAAe,CAAC"}
@@ -90,6 +90,11 @@ class CommonChannelPathHandler {
90
90
  }
91
91
  exports.CommonChannelPathHandler = CommonChannelPathHandler;
92
92
  exports.commonChannelPathHandler = new CommonChannelPathHandler();
93
+ var ServerChannelCloseCode;
94
+ (function (ServerChannelCloseCode) {
95
+ ServerChannelCloseCode[ServerChannelCloseCode["ConnectionClosed"] = 1] = "ConnectionClosed";
96
+ ServerChannelCloseCode[ServerChannelCloseCode["NewChannelOpened"] = 2] = "NewChannelOpened";
97
+ })(ServerChannelCloseCode || (ServerChannelCloseCode = {}));
93
98
  class BaseCommonChannelHandler {
94
99
  constructor(handlerId, logger = console, options = {}) {
95
100
  this.handlerId = handlerId;
@@ -114,24 +119,22 @@ class BaseCommonChannelHandler {
114
119
  let clientId;
115
120
  this.heartbeat(connection);
116
121
  const wrappedConnection = (0, serializer_1.wrapSerializer)(connection, this.serializer);
117
- const getOrCreateChannel = (id, clientId) => {
118
- let channel = this.channelMap.get(id);
119
- if (!channel) {
120
- channel = new ws_channel_1.WSServerChannel(wrappedConnection, { id, clientId, logger: this.logger });
121
- this.channelMap.set(id, channel);
122
- }
123
- return channel;
124
- };
125
122
  wrappedConnection.onMessage((msg) => {
126
123
  try {
127
124
  switch (msg.kind) {
128
125
  case 'open': {
129
- const { id, path, connectionToken } = msg;
126
+ const { id, path, traceId } = msg;
130
127
  clientId = msg.clientId;
131
128
  this.logger.log(`open a new connection channel ${clientId} with path ${path}`);
132
- const channel = getOrCreateChannel(id, clientId);
129
+ let channel = this.channelMap.get(id);
130
+ if (channel) {
131
+ channel.close(ServerChannelCloseCode.NewChannelOpened, 'new channel opened for the same channel id');
132
+ channel.dispose();
133
+ }
134
+ channel = new ws_channel_1.WSServerChannel(wrappedConnection, { id, clientId, logger: this.logger });
135
+ this.channelMap.set(id, channel);
133
136
  exports.commonChannelPathHandler.openChannel(path, channel, clientId);
134
- channel.serverReady(connectionToken);
137
+ channel.serverReady(traceId);
135
138
  break;
136
139
  }
137
140
  default: {
@@ -162,7 +165,7 @@ class BaseCommonChannelHandler {
162
165
  Array.from(this.channelMap.values())
163
166
  .filter((channel) => channel.clientId === clientId)
164
167
  .forEach((channel) => {
165
- channel.close(1, 'close');
168
+ channel.close(ServerChannelCloseCode.ConnectionClosed, 'connection closed');
166
169
  channel.dispose();
167
170
  this.channelMap.delete(channel.id);
168
171
  this.logger.log(`Remove connection channel ${channel.id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.js","sourceRoot":"","sources":["../../src/common/server-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-handler.js","sourceRoot":"","sources":["../../src/common/server-handler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from '@opensumi/events';
3
- import { DisposableStore, EventQueue, StateTracer } from '@opensumi/ide-core-common';
3
+ import { DisposableStore, EventQueue } from '@opensumi/ide-core-common';
4
4
  import { ChannelMessage } from './channel/types';
5
5
  import { IConnectionShape } from './connection/types';
6
6
  import { ISumiConnectionOptions, SumiConnection } from './rpc/connection';
@@ -13,6 +13,30 @@ export interface IWSChannelCreateOptions {
13
13
  id: string;
14
14
  logger?: ILogger;
15
15
  ensureServerReady?: boolean;
16
+ deliveryTimeout?: number;
17
+ }
18
+ declare enum MessageDeliveryState {
19
+ ReSend = 0,
20
+ Sended = 1,
21
+ Success = 2,
22
+ Failed = 3
23
+ }
24
+ declare class StateTracer {
25
+ private map;
26
+ protected deliveryTimeout: number;
27
+ protected timerMap: Map<string, NodeJS.Timeout>;
28
+ setDeliveryTimeout(timeout: number): void;
29
+ protected set(traceId: string, state: MessageDeliveryState): void;
30
+ get(traceId: string): MessageDeliveryState | undefined;
31
+ success(traceId: string): void;
32
+ dispose(): void;
33
+ stop(traceId: string): void;
34
+ send(traceId: string, options: {
35
+ whenRetry: () => void;
36
+ }): void;
37
+ guard(traceId: string, options: {
38
+ whenRetry: () => void;
39
+ }): void;
16
40
  }
17
41
  export declare class WSChannel {
18
42
  connection: IConnectionShape<ChannelMessage>;
@@ -28,6 +52,7 @@ export declare class WSChannel {
28
52
  protected sendQueue: ChannelMessage[];
29
53
  protected _isServerReady: boolean;
30
54
  protected _ensureServerReady: boolean | undefined;
55
+ protected stateTracer: StateTracer;
31
56
  id: string;
32
57
  channelPath: string;
33
58
  clientId: string;
@@ -35,6 +60,10 @@ export declare class WSChannel {
35
60
  logger: ILogger;
36
61
  constructor(connection: IConnectionShape<ChannelMessage>, options: IWSChannelCreateOptions);
37
62
  protected inqueue(data: ChannelMessage): void;
63
+ /**
64
+ * @param traceId 一个 connection token 用于在全链路中追踪一个消息的生命周期,防止消息未发送或者重复发送
65
+ */
66
+ protected ensureMessageDeliveried(data: ChannelMessage, traceId?: string): void;
38
67
  onMessage(cb: (data: string) => any): import("@opensumi/events").IDisposable;
39
68
  onBinary(cb: (data: Uint8Array) => any): import("@opensumi/ide-core-common").IDisposable;
40
69
  onOpen(cb: (id: string) => void): import("@opensumi/events").IDisposable;
@@ -43,16 +72,7 @@ export declare class WSChannel {
43
72
  onServerReady(cb: () => void): import("@opensumi/events").IDisposable | undefined;
44
73
  resume(): void;
45
74
  dispatch(msg: ChannelMessage): void;
46
- stateTracer: StateTracer;
47
- /**
48
- * @param connectionToken 一个 connection token 用于在全链路中追踪一个 channel 的生命周期,防止 channel 被重复打开
49
- */
50
- open(path: string, clientId: string, connectionToken?: string): string | undefined;
51
- protected timer: NodeJS.Timeout;
52
- /**
53
- * 启动定时器,确保 server-ready 消息在一定时间内到达
54
- */
55
- protected ensureOpenSend(path: string, clientId: string, connectionToken: string): void;
75
+ open(path: string, clientId: string): void;
56
76
  send(content: string): void;
57
77
  sendBinary(data: Uint8Array): void;
58
78
  onError(): void;
@@ -81,7 +101,7 @@ export declare class WSServerChannel extends WSChannel {
81
101
  messageQueue: ChannelMessage[];
82
102
  clientId: string;
83
103
  constructor(connection: IConnectionShape<ChannelMessage>, options: IWSServerChannelCreateOptions);
84
- serverReady(token: string): void;
104
+ serverReady(traceId: string): void;
85
105
  dispatch(msg: ChannelMessage): void;
86
106
  }
87
107
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-channel.d.ts","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,62 @@ const events_1 = require("@opensumi/events");
5
5
  const ide_core_common_1 = require("@opensumi/ide-core-common");
6
6
  const types_1 = require("./channel/types");
7
7
  const connection_1 = require("./rpc/connection");
8
+ var MessageDeliveryState;
9
+ (function (MessageDeliveryState) {
10
+ MessageDeliveryState[MessageDeliveryState["ReSend"] = 0] = "ReSend";
11
+ MessageDeliveryState[MessageDeliveryState["Sended"] = 1] = "Sended";
12
+ MessageDeliveryState[MessageDeliveryState["Success"] = 2] = "Success";
13
+ MessageDeliveryState[MessageDeliveryState["Failed"] = 3] = "Failed";
14
+ })(MessageDeliveryState || (MessageDeliveryState = {}));
15
+ class StateTracer {
16
+ constructor() {
17
+ this.map = new Map();
18
+ this.deliveryTimeout = 500;
19
+ this.timerMap = new Map();
20
+ }
21
+ setDeliveryTimeout(timeout) {
22
+ this.deliveryTimeout = timeout;
23
+ }
24
+ set(traceId, state) {
25
+ this.map.set(traceId, state);
26
+ }
27
+ get(traceId) {
28
+ return this.map.get(traceId);
29
+ }
30
+ success(traceId) {
31
+ this.map.set(traceId, MessageDeliveryState.Success);
32
+ const timer = this.timerMap.get(traceId);
33
+ if (timer) {
34
+ clearTimeout(timer);
35
+ }
36
+ }
37
+ dispose() {
38
+ this.timerMap.forEach((timer) => {
39
+ clearTimeout(timer);
40
+ });
41
+ }
42
+ stop(traceId) {
43
+ const timer = this.timerMap.get(traceId);
44
+ if (timer) {
45
+ clearTimeout(timer);
46
+ }
47
+ }
48
+ send(traceId, options) {
49
+ this.set(traceId, MessageDeliveryState.Sended);
50
+ this.guard(traceId, options);
51
+ }
52
+ guard(traceId, options) {
53
+ const timer = this.timerMap.get(traceId);
54
+ if (timer) {
55
+ clearTimeout(timer);
56
+ }
57
+ const newTimer = setTimeout(() => {
58
+ this.set(traceId, MessageDeliveryState.ReSend);
59
+ options.whenRetry();
60
+ }, this.deliveryTimeout);
61
+ this.timerMap.set(traceId, newTimer);
62
+ }
63
+ }
8
64
  class WSChannel {
9
65
  constructor(connection, options) {
10
66
  this.connection = connection;
@@ -13,9 +69,9 @@ class WSChannel {
13
69
  this.onBinaryQueue = this._disposables.add(new ide_core_common_1.EventQueue());
14
70
  this.sendQueue = [];
15
71
  this._isServerReady = false;
72
+ this.stateTracer = new StateTracer();
16
73
  this.LOG_TAG = '[WSChannel]';
17
74
  this.logger = console;
18
- this.stateTracer = this._disposables.add(new ide_core_common_1.StateTracer());
19
75
  const { id, logger, ensureServerReady } = options;
20
76
  this.id = id;
21
77
  this.LOG_TAG = `[WSChannel id:${this.id}]`;
@@ -23,6 +79,9 @@ class WSChannel {
23
79
  this.logger = logger;
24
80
  }
25
81
  this._ensureServerReady = Boolean(ensureServerReady);
82
+ if (options.deliveryTimeout) {
83
+ this.stateTracer.setDeliveryTimeout(options.deliveryTimeout);
84
+ }
26
85
  this._disposables.add(this.emitter.on('binary', (data) => this.onBinaryQueue.push(data)));
27
86
  }
28
87
  inqueue(data) {
@@ -35,6 +94,27 @@ class WSChannel {
35
94
  }
36
95
  this.connection.send(data);
37
96
  }
97
+ /**
98
+ * @param traceId 一个 connection token 用于在全链路中追踪一个消息的生命周期,防止消息未发送或者重复发送
99
+ */
100
+ ensureMessageDeliveried(data, traceId = (0, ide_core_common_1.randomString)(16)) {
101
+ const state = this.stateTracer.get(traceId);
102
+ if (state && state >= MessageDeliveryState.Sended) {
103
+ this.logger.error(`message already send already success or in progress, traceId: ${traceId}, state: ${state}`);
104
+ return;
105
+ }
106
+ data.traceId = traceId;
107
+ this.connection.send(data);
108
+ this.stateTracer.send(traceId, {
109
+ whenRetry: () => {
110
+ if (this._isServerReady) {
111
+ this.stateTracer.stop(traceId);
112
+ return;
113
+ }
114
+ this.ensureMessageDeliveried(data, traceId);
115
+ },
116
+ });
117
+ }
38
118
  onMessage(cb) {
39
119
  return this.emitter.on('message', cb);
40
120
  }
@@ -69,11 +149,10 @@ class WSChannel {
69
149
  dispatch(msg) {
70
150
  switch (msg.kind) {
71
151
  case 'server-ready':
72
- this.stateTracer.fulfill(msg.token);
73
- this.resume();
74
- if (this.timer) {
75
- clearTimeout(this.timer);
152
+ if (msg.traceId) {
153
+ this.stateTracer.success(msg.traceId);
76
154
  }
155
+ this.resume();
77
156
  this.emitter.emit('open', msg.id);
78
157
  break;
79
158
  case 'data':
@@ -98,44 +177,22 @@ class WSChannel {
98
177
  break;
99
178
  }
100
179
  }
101
- /**
102
- * @param connectionToken 一个 connection token 用于在全链路中追踪一个 channel 的生命周期,防止 channel 被重复打开
103
- */
104
- open(path, clientId, connectionToken = (0, ide_core_common_1.randomString)(16)) {
180
+ open(path, clientId) {
105
181
  this.channelPath = path;
106
182
  this.clientId = clientId;
107
183
  this.LOG_TAG = `[WSChannel id=${this.id} path=${path}]`;
108
- if (this.stateTracer.has(connectionToken)) {
109
- this.logger.warn(`channel already opened or in progress, path: ${path}, clientId: ${clientId}, connectionToken: ${connectionToken}`);
110
- return;
111
- }
112
- this.stateTracer.record(connectionToken);
113
- this.connection.send({
184
+ const msg = {
114
185
  kind: 'open',
115
186
  id: this.id,
116
187
  path,
117
188
  clientId,
118
- connectionToken,
119
- });
189
+ };
120
190
  if (this._ensureServerReady) {
121
- this.ensureOpenSend(path, clientId, connectionToken);
191
+ this.ensureMessageDeliveried(msg);
122
192
  }
123
- return connectionToken;
124
- }
125
- /**
126
- * 启动定时器,确保 server-ready 消息在一定时间内到达
127
- */
128
- ensureOpenSend(path, clientId, connectionToken) {
129
- if (this.timer) {
130
- clearTimeout(this.timer);
193
+ else {
194
+ this.connection.send(msg);
131
195
  }
132
- this.timer = setTimeout(() => {
133
- if (this._isServerReady) {
134
- return;
135
- }
136
- this.stateTracer.delete(connectionToken);
137
- this.open(path, clientId, connectionToken);
138
- }, 500);
139
196
  }
140
197
  send(content) {
141
198
  this.inqueue({
@@ -180,9 +237,7 @@ class WSChannel {
180
237
  return conn;
181
238
  }
182
239
  dispose() {
183
- if (this.timer) {
184
- clearTimeout(this.timer);
185
- }
240
+ this.stateTracer.dispose();
186
241
  this.sendQueue = [];
187
242
  this._disposables.dispose();
188
243
  }
@@ -204,11 +259,11 @@ class WSServerChannel extends WSChannel {
204
259
  this.messageQueue = [];
205
260
  this.clientId = options.clientId;
206
261
  }
207
- serverReady(token) {
262
+ serverReady(traceId) {
208
263
  this.connection.send({
209
264
  kind: 'server-ready',
210
265
  id: this.id,
211
- token,
266
+ traceId,
212
267
  });
213
268
  }
214
269
  dispatch(msg) {
@@ -1 +1 @@
1
- {"version":3,"file":"ws-channel.js","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-channel.js","sourceRoot":"","sources":["../../src/common/ws-channel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-connection",
3
- "version": "3.1.4",
3
+ "version": "3.1.5-next-1719913150.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -19,16 +19,16 @@
19
19
  "dependencies": {
20
20
  "@furyjs/fury": "0.5.9-beta",
21
21
  "@opensumi/events": "^1.0.0",
22
- "@opensumi/ide-core-common": "3.1.4",
22
+ "@opensumi/ide-core-common": "3.1.5-next-1719913150.0",
23
23
  "@opensumi/reconnecting-websocket": "^4.4.0",
24
24
  "@opensumi/vscode-jsonrpc": "^8.0.0-next.2",
25
25
  "path-to-regexp": "^6.2.1",
26
26
  "ws": "^8.16.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@opensumi/ide-components": "3.1.4",
30
- "@opensumi/ide-dev-tool": "3.1.4",
29
+ "@opensumi/ide-components": "3.1.5-next-1719913150.0",
30
+ "@opensumi/ide-dev-tool": "3.1.5-next-1719913150.0",
31
31
  "@opensumi/mock-socket": "^9.3.1"
32
32
  },
33
- "gitHead": "8dacde52c1e5e51abee066a3b5f38060116118d3"
33
+ "gitHead": "98e8f770aa90f60a3ac87e6b96435aadd13ebb33"
34
34
  }
@@ -8,41 +8,42 @@ export type ChannelMessage =
8
8
  | CloseMessage
9
9
  | ErrorMessage;
10
10
 
11
+ export interface BaseMessage {
12
+ kind: string;
13
+ id: string;
14
+ traceId?: string;
15
+ }
16
+
11
17
  /**
12
18
  * `ping` and `pong` are used to detect whether the connection is alive.
13
19
  */
14
- export interface PingMessage {
20
+ export interface PingMessage extends BaseMessage {
15
21
  kind: 'ping';
16
- id: string;
17
22
  }
18
23
 
19
24
  /**
20
25
  * when server receive a `ping` message, it should reply a `pong` message, vice versa.
21
26
  */
22
- export interface PongMessage {
27
+ export interface PongMessage extends BaseMessage {
23
28
  kind: 'pong';
24
- id: string;
25
29
  }
26
30
 
27
31
  /**
28
32
  * `data` message indicate that the channel has received some data.
29
33
  * the `content` field is the data, it should be a string.
30
34
  */
31
- export interface DataMessage {
35
+ export interface DataMessage extends BaseMessage {
32
36
  kind: 'data';
33
- id: string;
34
37
  content: string;
35
38
  }
36
39
 
37
- export interface BinaryMessage {
40
+ export interface BinaryMessage extends BaseMessage {
38
41
  kind: 'binary';
39
- id: string;
40
42
  binary: Uint8Array;
41
43
  }
42
44
 
43
- export interface CloseMessage {
45
+ export interface CloseMessage extends BaseMessage {
44
46
  kind: 'close';
45
- id: string;
46
47
  code: number;
47
48
  reason: string;
48
49
  }
@@ -52,19 +53,18 @@ export interface CloseMessage {
52
53
  * `path` is used to identify which handler should be used to handle the channel.
53
54
  * `clientId` is used to identify the client.
54
55
  */
55
- export interface OpenMessage {
56
+ export interface OpenMessage extends BaseMessage {
56
57
  kind: 'open';
57
- id: string;
58
58
  path: string;
59
59
  clientId: string;
60
- connectionToken: string;
60
+ traceId: string;
61
61
  }
62
62
 
63
63
  export enum ErrorMessageCode {
64
64
  ChannelNotFound = 1,
65
65
  }
66
66
 
67
- export interface ErrorMessage {
67
+ export interface ErrorMessage extends BaseMessage {
68
68
  kind: 'error';
69
69
  id: string;
70
70
  code: ErrorMessageCode;
@@ -75,8 +75,8 @@ export interface ErrorMessage {
75
75
  * when server receive a `open` message, it should reply a `server-ready` message.
76
76
  * this is indicate that the channel is ready to use.
77
77
  */
78
- export interface ServerReadyMessage {
78
+ export interface ServerReadyMessage extends BaseMessage {
79
79
  kind: 'server-ready';
80
80
  id: string;
81
- token: string;
81
+ traceId: string;
82
82
  }
@@ -177,6 +177,8 @@ export class RPCServiceCenter implements IDisposable {
177
177
 
178
178
  dispose(): void {
179
179
  this._disposables.dispose();
180
+ this.proxies.forEach((proxy) => proxy.dispose());
181
+ this.proxies = [];
180
182
  }
181
183
  }
182
184
 
@@ -5,44 +5,50 @@ import { oneOf } from '../fury-extends/one-of';
5
5
 
6
6
  import { ISerializer } from './types';
7
7
 
8
+ function baseFields() {
9
+ return {
10
+ id: Type.string(),
11
+ };
12
+ }
13
+
8
14
  export const PingProtocol = Type.object('ping', {
9
- id: Type.string(),
15
+ ...baseFields(),
10
16
  });
11
17
 
12
18
  export const PongProtocol = Type.object('pong', {
13
- id: Type.string(),
19
+ ...baseFields(),
14
20
  });
15
21
 
16
22
  export const OpenProtocol = Type.object('open', {
23
+ ...baseFields(),
17
24
  clientId: Type.string(),
18
- id: Type.string(),
19
25
  path: Type.string(),
20
- connectionToken: Type.string(),
26
+ traceId: Type.string(),
21
27
  });
22
28
 
23
29
  export const ServerReadyProtocol = Type.object('server-ready', {
24
- id: Type.string(),
25
- token: Type.string(),
30
+ ...baseFields(),
31
+ traceId: Type.string(),
26
32
  });
27
33
 
28
34
  export const ErrorProtocol = Type.object('error', {
29
- id: Type.string(),
35
+ ...baseFields(),
30
36
  code: Type.uint16(),
31
37
  message: Type.string(),
32
38
  });
33
39
 
34
40
  export const DataProtocol = Type.object('data', {
35
- id: Type.string(),
41
+ ...baseFields(),
36
42
  content: Type.string(),
37
43
  });
38
44
 
39
45
  export const BinaryProtocol = Type.object('binary', {
40
- id: Type.string(),
46
+ ...baseFields(),
41
47
  binary: Type.binary(),
42
48
  });
43
49
 
44
50
  export const CloseProtocol = Type.object('close', {
45
- id: Type.string(),
51
+ ...baseFields(),
46
52
  code: Type.uint32(),
47
53
  reason: Type.string(),
48
54
  });
@@ -104,6 +104,11 @@ export interface ChannelHandlerOptions {
104
104
  serializer?: ISerializer<ChannelMessage, any>;
105
105
  }
106
106
 
107
+ enum ServerChannelCloseCode {
108
+ ConnectionClosed = 1,
109
+ NewChannelOpened = 2,
110
+ }
111
+
107
112
  export abstract class BaseCommonChannelHandler {
108
113
  protected channelMap: Map<string, WSServerChannel> = new Map();
109
114
 
@@ -135,25 +140,24 @@ export abstract class BaseCommonChannelHandler {
135
140
 
136
141
  const wrappedConnection = wrapSerializer(connection, this.serializer);
137
142
 
138
- const getOrCreateChannel = (id: string, clientId: string) => {
139
- let channel = this.channelMap.get(id);
140
- if (!channel) {
141
- channel = new WSServerChannel(wrappedConnection, { id, clientId, logger: this.logger });
142
- this.channelMap.set(id, channel);
143
- }
144
- return channel;
145
- };
146
-
147
143
  wrappedConnection.onMessage((msg: ChannelMessage) => {
148
144
  try {
149
145
  switch (msg.kind) {
150
146
  case 'open': {
151
- const { id, path, connectionToken } = msg;
147
+ const { id, path, traceId } = msg;
152
148
  clientId = msg.clientId;
149
+
153
150
  this.logger.log(`open a new connection channel ${clientId} with path ${path}`);
154
- const channel = getOrCreateChannel(id, clientId);
151
+ let channel = this.channelMap.get(id);
152
+ if (channel) {
153
+ channel.close(ServerChannelCloseCode.NewChannelOpened, 'new channel opened for the same channel id');
154
+ channel.dispose();
155
+ }
156
+
157
+ channel = new WSServerChannel(wrappedConnection, { id, clientId, logger: this.logger });
158
+ this.channelMap.set(id, channel);
155
159
  commonChannelPathHandler.openChannel(path, channel, clientId);
156
- channel.serverReady(connectionToken);
160
+ channel.serverReady(traceId);
157
161
  break;
158
162
  }
159
163
  default: {
@@ -186,7 +190,7 @@ export abstract class BaseCommonChannelHandler {
186
190
  Array.from(this.channelMap.values())
187
191
  .filter((channel) => channel.clientId === clientId)
188
192
  .forEach((channel) => {
189
- channel.close(1, 'close');
193
+ channel.close(ServerChannelCloseCode.ConnectionClosed, 'connection closed');
190
194
  channel.dispose();
191
195
  this.channelMap.delete(channel.id);
192
196
  this.logger.log(`Remove connection channel ${channel.id}`);
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '@opensumi/events';
2
- import { DisposableStore, EventQueue, StateTracer, randomString } from '@opensumi/ide-core-common';
2
+ import { DisposableStore, EventQueue, randomString } from '@opensumi/ide-core-common';
3
3
 
4
4
  import { ChannelMessage, ErrorMessageCode } from './channel/types';
5
5
  import { IConnectionShape } from './connection/types';
@@ -15,6 +15,82 @@ export interface IWSChannelCreateOptions {
15
15
  logger?: ILogger;
16
16
 
17
17
  ensureServerReady?: boolean;
18
+ deliveryTimeout?: number;
19
+ }
20
+
21
+ enum MessageDeliveryState {
22
+ ReSend,
23
+ Sended,
24
+ Success,
25
+ Failed,
26
+ }
27
+
28
+ class StateTracer {
29
+ private map = new Map<string, MessageDeliveryState>();
30
+
31
+ protected deliveryTimeout = 500;
32
+ protected timerMap = new Map<string, NodeJS.Timeout>();
33
+
34
+ setDeliveryTimeout(timeout: number) {
35
+ this.deliveryTimeout = timeout;
36
+ }
37
+
38
+ protected set(traceId: string, state: MessageDeliveryState) {
39
+ this.map.set(traceId, state);
40
+ }
41
+
42
+ get(traceId: string) {
43
+ return this.map.get(traceId);
44
+ }
45
+
46
+ success(traceId: string) {
47
+ this.map.set(traceId, MessageDeliveryState.Success);
48
+ const timer = this.timerMap.get(traceId);
49
+ if (timer) {
50
+ clearTimeout(timer);
51
+ }
52
+ }
53
+
54
+ dispose() {
55
+ this.timerMap.forEach((timer) => {
56
+ clearTimeout(timer);
57
+ });
58
+ }
59
+
60
+ stop(traceId: string) {
61
+ const timer = this.timerMap.get(traceId);
62
+ if (timer) {
63
+ clearTimeout(timer);
64
+ }
65
+ }
66
+
67
+ send(
68
+ traceId: string,
69
+ options: {
70
+ whenRetry: () => void;
71
+ },
72
+ ) {
73
+ this.set(traceId, MessageDeliveryState.Sended);
74
+ this.guard(traceId, options);
75
+ }
76
+
77
+ guard(
78
+ traceId: string,
79
+ options: {
80
+ whenRetry: () => void;
81
+ },
82
+ ) {
83
+ const timer = this.timerMap.get(traceId);
84
+ if (timer) {
85
+ clearTimeout(timer);
86
+ }
87
+
88
+ const newTimer = setTimeout(() => {
89
+ this.set(traceId, MessageDeliveryState.ReSend);
90
+ options.whenRetry();
91
+ }, this.deliveryTimeout);
92
+ this.timerMap.set(traceId, newTimer);
93
+ }
18
94
  }
19
95
 
20
96
  export class WSChannel {
@@ -35,6 +111,8 @@ export class WSChannel {
35
111
  protected _isServerReady = false;
36
112
  protected _ensureServerReady: boolean | undefined;
37
113
 
114
+ protected stateTracer = new StateTracer();
115
+
38
116
  public id: string;
39
117
 
40
118
  public channelPath: string;
@@ -53,6 +131,9 @@ export class WSChannel {
53
131
  }
54
132
 
55
133
  this._ensureServerReady = Boolean(ensureServerReady);
134
+ if (options.deliveryTimeout) {
135
+ this.stateTracer.setDeliveryTimeout(options.deliveryTimeout);
136
+ }
56
137
 
57
138
  this._disposables.add(this.emitter.on('binary', (data) => this.onBinaryQueue.push(data)));
58
139
  }
@@ -68,6 +149,30 @@ export class WSChannel {
68
149
  this.connection.send(data);
69
150
  }
70
151
 
152
+ /**
153
+ * @param traceId 一个 connection token 用于在全链路中追踪一个消息的生命周期,防止消息未发送或者重复发送
154
+ */
155
+ protected ensureMessageDeliveried(data: ChannelMessage, traceId = randomString(16)) {
156
+ const state = this.stateTracer.get(traceId);
157
+ if (state && state >= MessageDeliveryState.Sended) {
158
+ this.logger.error(`message already send already success or in progress, traceId: ${traceId}, state: ${state}`);
159
+ return;
160
+ }
161
+
162
+ data.traceId = traceId;
163
+ this.connection.send(data);
164
+
165
+ this.stateTracer.send(traceId, {
166
+ whenRetry: () => {
167
+ if (this._isServerReady) {
168
+ this.stateTracer.stop(traceId);
169
+ return;
170
+ }
171
+ this.ensureMessageDeliveried(data, traceId);
172
+ },
173
+ });
174
+ }
175
+
71
176
  onMessage(cb: (data: string) => any) {
72
177
  return this.emitter.on('message', cb);
73
178
  }
@@ -106,11 +211,11 @@ export class WSChannel {
106
211
  dispatch(msg: ChannelMessage) {
107
212
  switch (msg.kind) {
108
213
  case 'server-ready':
109
- this.stateTracer.fulfill(msg.token);
110
- this.resume();
111
- if (this.timer) {
112
- clearTimeout(this.timer);
214
+ if (msg.traceId) {
215
+ this.stateTracer.success(msg.traceId);
113
216
  }
217
+
218
+ this.resume();
114
219
  this.emitter.emit('open', msg.id);
115
220
  break;
116
221
  case 'data':
@@ -136,56 +241,24 @@ export class WSChannel {
136
241
  }
137
242
  }
138
243
 
139
- stateTracer = this._disposables.add(new StateTracer());
140
-
141
- /**
142
- * @param connectionToken 一个 connection token 用于在全链路中追踪一个 channel 的生命周期,防止 channel 被重复打开
143
- */
144
- open(path: string, clientId: string, connectionToken = randomString(16)) {
244
+ open(path: string, clientId: string) {
145
245
  this.channelPath = path;
146
246
  this.clientId = clientId;
147
247
 
148
248
  this.LOG_TAG = `[WSChannel id=${this.id} path=${path}]`;
149
249
 
150
- if (this.stateTracer.has(connectionToken)) {
151
- this.logger.warn(
152
- `channel already opened or in progress, path: ${path}, clientId: ${clientId}, connectionToken: ${connectionToken}`,
153
- );
154
- return;
155
- }
156
-
157
- this.stateTracer.record(connectionToken);
158
-
159
- this.connection.send({
250
+ const msg = {
160
251
  kind: 'open',
161
252
  id: this.id,
162
253
  path,
163
254
  clientId,
164
- connectionToken,
165
- });
255
+ } as ChannelMessage;
166
256
 
167
257
  if (this._ensureServerReady) {
168
- this.ensureOpenSend(path, clientId, connectionToken);
258
+ this.ensureMessageDeliveried(msg);
259
+ } else {
260
+ this.connection.send(msg);
169
261
  }
170
-
171
- return connectionToken;
172
- }
173
-
174
- protected timer: NodeJS.Timeout;
175
- /**
176
- * 启动定时器,确保 server-ready 消息在一定时间内到达
177
- */
178
- protected ensureOpenSend(path: string, clientId: string, connectionToken: string) {
179
- if (this.timer) {
180
- clearTimeout(this.timer);
181
- }
182
- this.timer = setTimeout(() => {
183
- if (this._isServerReady) {
184
- return;
185
- }
186
- this.stateTracer.delete(connectionToken);
187
- this.open(path, clientId, connectionToken);
188
- }, 500);
189
262
  }
190
263
 
191
264
  send(content: string) {
@@ -235,9 +308,7 @@ export class WSChannel {
235
308
  }
236
309
 
237
310
  dispose() {
238
- if (this.timer) {
239
- clearTimeout(this.timer);
240
- }
311
+ this.stateTracer.dispose();
241
312
  this.sendQueue = [];
242
313
  this._disposables.dispose();
243
314
  }
@@ -266,11 +337,11 @@ export class WSServerChannel extends WSChannel {
266
337
  this.clientId = options.clientId;
267
338
  }
268
339
 
269
- serverReady(token: string) {
340
+ serverReady(traceId: string) {
270
341
  this.connection.send({
271
342
  kind: 'server-ready',
272
343
  id: this.id,
273
- token,
344
+ traceId,
274
345
  });
275
346
  }
276
347