@powersync/service-rsocket-router 0.0.0-dev-20240718134716 → 0.0.0-dev-20240918092408
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/dist/router/ReactiveSocketRouter.d.ts +2 -6
- package/dist/router/ReactiveSocketRouter.js +20 -6
- package/dist/router/ReactiveSocketRouter.js.map +1 -1
- package/dist/router/SocketRouterListener.d.ts +0 -2
- package/dist/router/SocketRouterListener.js +0 -3
- package/dist/router/SocketRouterListener.js.map +1 -1
- package/dist/router/transport/WebsocketDuplexConnection.js +8 -3
- package/dist/router/transport/WebsocketDuplexConnection.js.map +1 -1
- package/dist/router/types.d.ts +2 -0
- package/package.json +2 -2
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
|
|
3
|
-
* This is a small Router wrapper which uses the RSocket lib
|
|
4
|
-
* to expose reactive websocket stream in an interface similar to
|
|
5
|
-
* other Journey micro routers.
|
|
6
|
-
*/
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
7
3
|
import * as http from 'http';
|
|
8
4
|
import { Payload } from 'rsocket-core';
|
|
9
5
|
import { SocketRouterObserver } from './SocketRouterListener.js';
|
|
@@ -22,4 +18,4 @@ export declare function handleReactiveStream<Context>(context: Context, request:
|
|
|
22
18
|
payload: Payload;
|
|
23
19
|
initialN: number;
|
|
24
20
|
responder: SocketResponder;
|
|
25
|
-
}, observer: SocketRouterObserver, params: CommonParams<Context>): Promise<void>;
|
|
21
|
+
}, observer: SocketRouterObserver, abortController: AbortController, params: CommonParams<Context>): Promise<void>;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a small Router wrapper which uses the RSocket lib
|
|
3
|
+
* to expose reactive websocket stream in an interface similar to
|
|
4
|
+
* other Journey micro routers.
|
|
5
|
+
*/
|
|
6
|
+
import { errors, logger } from '@powersync/lib-services-framework';
|
|
1
7
|
import { RSocketServer } from 'rsocket-core';
|
|
2
8
|
import * as ws from 'ws';
|
|
3
9
|
import { SocketRouterObserver } from './SocketRouterListener.js';
|
|
4
|
-
import { RS_ENDPOINT_TYPE } from './types.js';
|
|
5
10
|
import { WebsocketServerTransport } from './transport/WebSocketServerTransport.js';
|
|
6
|
-
import {
|
|
11
|
+
import { RS_ENDPOINT_TYPE } from './types.js';
|
|
7
12
|
export class ReactiveSocketRouter {
|
|
8
13
|
constructor(options) {
|
|
9
14
|
this.options = options;
|
|
@@ -40,6 +45,7 @@ export class ReactiveSocketRouter {
|
|
|
40
45
|
acceptor: {
|
|
41
46
|
accept: async (payload) => {
|
|
42
47
|
const { max_concurrent_connections } = this.options ?? {};
|
|
48
|
+
logger.info(`Currently have ${wss.clients.size} active WebSocket connection(s)`);
|
|
43
49
|
// wss.clients.size includes this connection, so we check for greater than
|
|
44
50
|
// TODO: Share connection limit between this and http stream connections
|
|
45
51
|
if (max_concurrent_connections && wss.clients.size > max_concurrent_connections) {
|
|
@@ -61,15 +67,16 @@ export class ReactiveSocketRouter {
|
|
|
61
67
|
// RequestStream is currently the only supported connection type
|
|
62
68
|
requestStream: (payload, initialN, responder) => {
|
|
63
69
|
const observer = new SocketRouterObserver();
|
|
70
|
+
const abortController = new AbortController();
|
|
64
71
|
// TODO: Consider limiting the number of active streams per connection to prevent abuse
|
|
65
|
-
handleReactiveStream(context, { payload, initialN, responder }, observer, params).catch((ex) => {
|
|
72
|
+
handleReactiveStream(context, { payload, initialN, responder }, observer, abortController, params).catch((ex) => {
|
|
66
73
|
logger.error(ex);
|
|
67
74
|
responder.onError(ex);
|
|
68
75
|
responder.onComplete();
|
|
69
76
|
});
|
|
70
77
|
return {
|
|
71
78
|
cancel: () => {
|
|
72
|
-
|
|
79
|
+
abortController.abort();
|
|
73
80
|
},
|
|
74
81
|
onExtension: () => observer.triggerExtension(),
|
|
75
82
|
request: (n) => observer.triggerRequest(n)
|
|
@@ -86,7 +93,7 @@ export class ReactiveSocketRouter {
|
|
|
86
93
|
return rSocketServer.bind();
|
|
87
94
|
}
|
|
88
95
|
}
|
|
89
|
-
export async function handleReactiveStream(context, request, observer, params) {
|
|
96
|
+
export async function handleReactiveStream(context, request, observer, abortController, params) {
|
|
90
97
|
const { payload, responder, initialN } = request;
|
|
91
98
|
const { metadata } = payload;
|
|
92
99
|
const startTime = new Date();
|
|
@@ -112,7 +119,13 @@ export async function handleReactiveStream(context, request, observer, params) {
|
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
if (authorize) {
|
|
115
|
-
const isAuthorized = await authorize({
|
|
122
|
+
const isAuthorized = await authorize({
|
|
123
|
+
params: requestPayload,
|
|
124
|
+
context,
|
|
125
|
+
observer,
|
|
126
|
+
signal: abortController.signal,
|
|
127
|
+
responder
|
|
128
|
+
});
|
|
116
129
|
if (!isAuthorized.authorized) {
|
|
117
130
|
return exitWithError(new errors.AuthorizationError(isAuthorized.errors));
|
|
118
131
|
}
|
|
@@ -122,6 +135,7 @@ export async function handleReactiveStream(context, request, observer, params) {
|
|
|
122
135
|
params: requestPayload,
|
|
123
136
|
context,
|
|
124
137
|
observer,
|
|
138
|
+
signal: abortController.signal,
|
|
125
139
|
responder,
|
|
126
140
|
initialN
|
|
127
141
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveSocketRouter.js","sourceRoot":"","sources":["../../src/router/ReactiveSocketRouter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReactiveSocketRouter.js","sourceRoot":"","sources":["../../src/router/ReactiveSocketRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { BaseObserver } from '../utils/BaseObserver.js';
|
|
2
2
|
export interface SocketRouterListener {
|
|
3
|
-
cancel: () => void;
|
|
4
3
|
onExtension: () => void;
|
|
5
4
|
request: (n: number) => void;
|
|
6
5
|
}
|
|
7
6
|
export declare class SocketRouterObserver extends BaseObserver<SocketRouterListener> {
|
|
8
|
-
triggerCancel(): void;
|
|
9
7
|
triggerExtension(): void;
|
|
10
8
|
triggerRequest(n: number): void;
|
|
11
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketRouterListener.js","sourceRoot":"","sources":["../../src/router/SocketRouterListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SocketRouterListener.js","sourceRoot":"","sources":["../../src/router/SocketRouterListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,MAAM,OAAO,oBAAqB,SAAQ,YAAkC;IAC1E,gBAAgB;QACd,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,CAAS;QACtB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -22,11 +22,13 @@ export class WebsocketDuplexConnection extends Deferred {
|
|
|
22
22
|
this.websocketDuplex = websocketDuplex;
|
|
23
23
|
this.rawSocket = rawSocket;
|
|
24
24
|
this.handleClosed = (e) => {
|
|
25
|
-
this.close(new Error(e
|
|
25
|
+
this.close(new Error(e?.reason || 'WebsocketDuplexConnection: Socket closed unexpectedly.'));
|
|
26
26
|
};
|
|
27
27
|
this.handleError = (e) => {
|
|
28
28
|
logger.error(`Error in WebSocket duplex connection: ${e}`);
|
|
29
|
-
this.
|
|
29
|
+
if (!this.done) {
|
|
30
|
+
this.close(e.error);
|
|
31
|
+
}
|
|
30
32
|
};
|
|
31
33
|
this.handleMessage = (buffer) => {
|
|
32
34
|
try {
|
|
@@ -50,7 +52,10 @@ export class WebsocketDuplexConnection extends Deferred {
|
|
|
50
52
|
super.close(error);
|
|
51
53
|
return;
|
|
52
54
|
}
|
|
53
|
-
|
|
55
|
+
// Important: do not remove the error handler here.
|
|
56
|
+
// That causes uncaught error handlers in some edge cases.
|
|
57
|
+
this.websocketDuplex.removeAllListeners('close');
|
|
58
|
+
this.websocketDuplex.removeAllListeners('data');
|
|
54
59
|
this.websocketDuplex.end();
|
|
55
60
|
super.close(error);
|
|
56
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketDuplexConnection.js","sourceRoot":"","sources":["../../../src/router/transport/WebsocketDuplexConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAEL,QAAQ,EAER,gBAAgB,EAMhB,cAAc,EACf,MAAM,cAAc,CAAC;AAItB,MAAM,OAAO,yBAA0B,SAAQ,QAAQ;IAGrD,YACU,eAAuB,EAC/B,KAAY,EACZ,+BAG+C,EACvC,SAA8B;QAEtC,KAAK,EAAE,CAAC;QARA,oBAAe,GAAf,eAAe,CAAQ;QAMvB,cAAS,GAAT,SAAS,CAAqB;
|
|
1
|
+
{"version":3,"file":"WebsocketDuplexConnection.js","sourceRoot":"","sources":["../../../src/router/transport/WebsocketDuplexConnection.ts"],"names":[],"mappings":"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"}
|
package/dist/router/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
3
|
import * as t from 'ts-codec';
|
|
3
4
|
import { router } from '@powersync/lib-services-framework';
|
|
4
5
|
import { OnExtensionSubscriber, OnNextSubscriber, OnTerminalSubscriber } from 'rsocket-core';
|
|
@@ -17,6 +18,7 @@ export type SocketResponder = OnTerminalSubscriber & OnNextSubscriber & OnExtens
|
|
|
17
18
|
export type CommonStreamPayload = {
|
|
18
19
|
observer: SocketRouterObserver;
|
|
19
20
|
responder: SocketResponder;
|
|
21
|
+
signal: AbortSignal;
|
|
20
22
|
};
|
|
21
23
|
export type ReactiveStreamPayload<O> = CommonStreamPayload & {
|
|
22
24
|
initialN: number;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/service-rsocket-router",
|
|
3
3
|
"repository": "https://github.com/powersync-ja/powersync-service",
|
|
4
|
-
"version": "0.0.0-dev-
|
|
4
|
+
"version": "0.0.0-dev-20240918092408",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"ts-codec": "^1.2.2",
|
|
18
18
|
"uuid": "^9.0.1",
|
|
19
19
|
"ws": "^8.17.0",
|
|
20
|
-
"@powersync/lib-services-framework": "0.0.0-dev-
|
|
20
|
+
"@powersync/lib-services-framework": "0.0.0-dev-20240918092408"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/uuid": "^9.0.4",
|