如何将 RSocket 数据检索到不同的选项卡?

How to retrieve RSocket Data to different tabs?

这是我的代码,它仅适用于我所在的选项卡。我收到回复,一切似乎都很好,我仍然不了解整个技术的运作,这就是我去找你的原因。

它以“responseHanlder”结尾

connect() {
    // backend ws endpoint
    const wsURL = "ws://localhost:6565/rsocket";

    // rsocket client
    const client = new RSocketClient({
      serializers: {
        data: JsonSerializer,
        metadata: IdentitySerializer,
      },
      setup: {
        keepAlive: 60000,
        lifetime: 180000,
        dataMimeType: "application/json",
        metadataMimeType: "message/x.rsocket.routing.v0",
      },
      transport: new RSocketWebSocketClient({
        url: wsURL,
      }),
    });
    
    client.connect()
          .then((sock) => {
               document.getElementById("connect")
                       .addEventListener("click", (event) => {
                          numberRequester(sock);
                       });
          }, errorHanlder);

    /*Aquí comienza el código del primer socket para insertar un producto
    antes de enviar la notificación primero realiza una acción*/
    const numberRequester = (socket) => {
    
            socket
                .requestResponse({
                  data: {
                    id: null,
                    subscriber: retrieveData.id,
                    titulo: "Se insertó un nuevo producto",
                    descripcion:
                    "Aquí se agrega una descripcion breve de lo que se acaba de hacer (opcional)",
                    fecha_inicio: today,
                    fecha_final: final,
                    leido: false,
                  },
                  metadata:
                    String.fromCharCode("insert.notification".length) +
                    "insert.notification",
                })
                .subscribe({
                  onComplete: responseHanlder,
                  onError: errorHanlder,
                  onNext: responseHanlder,
                  onSubscribe: (subscription) => {
                    //subscription.request(100); // set it to some max value
                  },
                });
            }


    // error handler
    const errorHanlder = (e) => console.log(e);
    // response handler
    const responseHanlder = (payload) => {
      this.sendNotification(payload.data);
    };
} 

发送数据后,我的 rsocket 收到信息,然后我收到包含我需要的数据的响应。目前,它仅在运行它的选项卡中有效,但我需要在其他选项卡中反映该信息,因为它是通知的原型。

RSocket 是有状态的、面向会话的、应用程序协议

这意味着,每次您的 RSocket 客户端连接到服务器时,它都会打开一个连接并通过它与您的服务器通信。

如果客户端是浏览器,出于安全原因,其他浏览器会话将无法访问您的连接。

如何通过rsocket广播消息

实际上,对于浏览器,您可以使用 2 个选项:

经纪人类型的消息传递

您始终可以连接到单个中介服务器,这将确保您的消息被广播到所有目的地。

您可以在 Spring Tutorials

找到这样的应用示例

使用 WebRTC 传输的 Broker less 消息传递(实验性且未正式发布)

我们有几个关于将 WebRTC(连同普通的 WebSocket)传输到浏览器通信的实验。

请找到那些实验here。请尝试并在我们的问题跟踪器上分享您的 feedback/vote 以获得此传输支持,如果您认为需要的话。