如何将 headers 添加到 Rsocket 元数据 - JavaScript?

How do I add headers to Rsocket metadata - JavaScript?

Javascript 方面,如何将 Accept-Language header 添加到 Rsocket 流? 我需要以某种方式将它添加到元数据中,但我找不到它的文档

这是我的设置:

    setup: {
      keepAlive: 25000,
      lifetime: 180000,
      dataMimeType: APPLICATION_JSON.string,
      metadataMimeType: MESSAGE_RSOCKET_COMPOSITE_METADATA.string
    },
    transport: new RSocketWebSocketClient({
      url: `my url`
    }, BufferEncoders)
  }


const metadata = encodeAndAddWellKnownMetadata(
    Buffer.alloc(0),
    MESSAGE_RSOCKET_ROUTING,
    routeMetadata
  );

  _socket.requestStream({
    data: Buffer.from(JSON.stringify(data)),
    metadata,
  }).subscribe({
    onNext: (payload) => receivedData(payload.data),
    onError: (error) => console.log(error),
    onSubscribe: (subscription) => subscription.request(MAX_STREAM_ID),
  });

您可以在 RSocketClient 选项 object.

中将 headers 添加到 setup object

示例:

const headers = { 'Accept-Language': 'en-US' }

new RSocketClient({
        setup: {
            keepAlive: 25000,
            lifetime: 180000,
            dataMimeType: APPLICATION_JSON.string,
            metadataMimeType: MESSAGE_RSOCKET_COMPOSITE_METADATA.string,
            payload: headers,
        },
        transport: new RSocketWebSocketClient({
            url: `my url`
        }, BufferEncoders),
    })

知道了, 在请求流中,添加到元数据:

const metadata = encodeAndAddWellKnownMetadata(
    encodeAndAddCustomMetadata(
      Buffer.alloc(0),
      "message/accept-language",
      Buffer.from("en-US"),
    ),
    MESSAGE_RSOCKET_ROUTING,
    routeMetadata,
  )

  _socket.requestStream({
    data: Buffer.from(JSON.stringify(data)),
    metadata,
  }).subscribe({
    onNext: (payload) => receivedData(payload.data),
    onError: (error) => console.log(error?.source),
    onSubscribe: (subscription) => subscription.request(MAX_STREAM_ID),
  });