From eccb7f2f79d9d86035620083f7f6aeb4d02fed7d Mon Sep 17 00:00:00 2001 From: Libing Chen Date: Thu, 25 Nov 2021 23:51:31 -0800 Subject: [PATCH 1/3] Add SetupPayload Signed-off-by: linux_china --- packages/rsocket-types/src/ReactiveSocketTypes.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/rsocket-types/src/ReactiveSocketTypes.js b/packages/rsocket-types/src/ReactiveSocketTypes.js index 34cdc99e..857b7953 100644 --- a/packages/rsocket-types/src/ReactiveSocketTypes.js +++ b/packages/rsocket-types/src/ReactiveSocketTypes.js @@ -174,6 +174,19 @@ export type Payload = {| metadata: ?M, |}; + +/** + * A single unit of data for connection from the peers of a `ReactiveSocket`. + */ +export type SetupPayload = {| + data: ?D, + metadata: ?M, + keepAlive: number, + lifetime: number, + metadataMimeType: ?string, + dataMimeType: ?string +|}; + export type Frame = | CancelFrame | ErrorFrame From a29d6d9ef3a3f08788097fa509f692d3509f4926 Mon Sep 17 00:00:00 2001 From: Libing Chen Date: Thu, 25 Nov 2021 23:53:27 -0800 Subject: [PATCH 2/3] Add deserializeSetupPayload() Signed-off-by: linux_china --- packages/rsocket-core/src/RSocketServer.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/rsocket-core/src/RSocketServer.js b/packages/rsocket-core/src/RSocketServer.js index e4aeecb9..19c9e456 100644 --- a/packages/rsocket-core/src/RSocketServer.js +++ b/packages/rsocket-core/src/RSocketServer.js @@ -21,7 +21,9 @@ import type { DuplexConnection, Frame, FrameWithData, + SetupFrame, Payload, + SetupPayload, ReactiveSocket, PartialResponder, } from 'rsocket-types'; @@ -180,7 +182,7 @@ export default class RSocketServer { try { const requestHandler = this._config.getRequestHandler( serverMachine, - deserializePayload(serializers, frame), + deserializeSetupPayload(serializers, frame), ); serverMachine.setRequestHandler(requestHandler); this._connections.add(serverMachine); @@ -277,3 +279,17 @@ function deserializePayload( metadata: serializers.metadata.deserialize(frame.metadata), }; } + +function deserializeSetupPayload( + serializers: PayloadSerializers, + frame: SetupFrame, +): SetupPayload { + return { + data: serializers.data.deserialize(frame.data), + metadata: serializers.metadata.deserialize(frame.metadata), + keepAlive: frame.keepAlive, + lifetime: frame.lifetime, + metadataMimeType: frame.metadataMimeType, + dataMimeType: frame.dataMimeType, + }; +} \ No newline at end of file From 1caf5209b5ad5fd4cc1c94cf423f519700711207 Mon Sep 17 00:00:00 2001 From: Libing Chen Date: Thu, 25 Nov 2021 23:55:36 -0800 Subject: [PATCH 3/3] Update ServerConfig's payload to SetupPayload type Signed-off-by: linux_china --- packages/rsocket-core/src/RSocketServer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rsocket-core/src/RSocketServer.js b/packages/rsocket-core/src/RSocketServer.js index 19c9e456..0725ea72 100644 --- a/packages/rsocket-core/src/RSocketServer.js +++ b/packages/rsocket-core/src/RSocketServer.js @@ -56,7 +56,7 @@ export interface TransportServer { export type ServerConfig = {| getRequestHandler: ( socket: ReactiveSocket, - payload: Payload, + payload: SetupPayload, ) => PartialResponder, serializers?: PayloadSerializers, transport: TransportServer,