rsocket-js icon indicating copy to clipboard operation
rsocket-js copied to clipboard

Metadata (M) flag is not set from responder side when `metadata` has length

Open viglucci opened this issue 4 years ago • 5 comments

In _sendStreamPayload of RSocketMachineImpl, when flags is created, the flag for present Metadata (M) is not set, which causes the payload.metadata value to not be included in the encoded payload later in serializePayloadFrame.

https://github.com/rsocket/rsocket-js/blob/master/packages/rsocket-core/src/RSocketMachine.js#L885

Expected Behavior

Per spec, Metadata (M) flag must be set when the payload contains metadata.

Actual Behavior

Metadata (M) flag is not set, and the resulting encoded payload does not include metadata.

Steps to Reproduce

Attempt to send any metadata value on a payload from requestResponse or requestStream, the value received on the client will be null.

Possible Solution

if (metadata && metadata.length > 0) {
  // eslint-disable-next-line no-bitwise
  flags |= _RSocketFrame.FLAGS.METADATA;
}

Your Environment

  • RSocket version(s) used: 0.0.27
  • Other relevant libraries versions (eg. netty, ...): n/a
  • Platform (eg. JVM version (javar -version) or Node version (node --version)): v16.13.1
  • OS and version (eg uname -a): Windows

viglucci avatar Dec 10 '21 06:12 viglucci

Thanks ~

sudongyuer avatar Dec 10 '21 06:12 sudongyuer

I use[ Buffer.from] api, and website metadata still null , i don't known why

sudongyuer avatar Dec 10 '21 07:12 sudongyuer

@viglucci, @OlegDokuka, I see this issue is fixed in #200 two months ago. When do you plan to release fixed version?

genesys-ppotapov avatar Feb 10 '22 11:02 genesys-ppotapov

Hi @genesys-ppotapov, unfortunately, we can't give a firm timeline for our next release at the moment. We are working towards cutting some releases, both for the existing 0.x, as well as a 1.0.0-alpha, but I don't have any firm dates to share at this time.

viglucci avatar Mar 06 '22 06:03 viglucci

@viglucci, I see. Thank you for the information.

genesys-ppotapov avatar Mar 09 '22 09:03 genesys-ppotapov