rsocket / rsocket-js

JavaScript implementation of RSocket

Home Page:https://github.com/rsocket/rsocket-js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How does the client receive messages sent by the server

sdack-cloud opened this issue · comments

commented

Websocketclient receives routing message

Hi @sdack-cloud , are you able to provide any additional information into what issue you are having?

commented
                    clientRSocket = RSocketConnector.create()
                        .metadataMimeType(WellKnownMimeType.MESSAGE_RSOCKET_COMPOSITE_METADATA.string)
                        .dataMimeType(WellKnownMimeType.APPLICATION_JSON.string)
                        .setupPayload(DefaultPayload.create("ttest"))
                        .acceptor(
                            SocketAcceptor.forRequestResponse { payload: Payload ->
                                val route: String? = decodeRoute(payload.sliceMetadata())
                                payload.release()
                                if ("message" == route) {
                                    val meta = MetaVo.Meta.parseFrom(payload.data)
                                    Log.e("MESSAGE", meta.toString())
                                    Mono.just(meta)
                                }
                                Mono.error(IllegalArgumentException("Route $route not found"))
                            }
                        )
                        .keepAlive(Duration.ofSeconds(30), Duration.ofMinutes(30))
                        .reconnect(Retry.fixedDelay(4, Duration.ofSeconds(5)))
                       .block()
     this.connector = new RSocketConnector({
        setup: {
          keepAlive: 5 * 1000,
          lifetime: 10 * 1000, //存活时长 毫秒
          dataMimeType: WellKnownMimeType.APPLICATION_CBOR.string,
          metadataMimeType: WellKnownMimeType.MESSAGE_RSOCKET_COMPOSITE_METADATA.string,
          // dataMimeType: "application/octet-stream",
          // metadataMimeType: 'message/x.rsocket.composite-metadata.v0',//message/x.rsocket.composite-metadata.v0
          payload: {
            data: Buffer.from("vue"),
            // metadata: encodeSimpleAuthMetadata("user","pass"),
          }
        },
        responder: {
          accept: () => ({
            requestResponse: (payload) => {
              console.log("payload")
            }
          })
        },
        transport: new WebsocketClientTransport({
          debug: true,
          url: 'ws://localhost:7002',
        }),
      });
      this.connector
        .connect()
        .then((res) => {
          console.log("connect", res)
          this.rsocketRequester = res;
          window.rsocketRequester = res;
          this.rsocketRequester.onClose((err) => {
            console.log("CLOSE", err)
          })
        }).catch((err) => {
        console.error("connect", err);
      });

How does the JS client receive routing messages ,Like Java acceptor(), it receives the information from the server

There are too few examples. Can you add some examples
@viglucci