在完整的 spring 应用程序中导入 SockJS

问题描述

我在 Jhipster / Spring 项目中使用 react-stomp,它正在我的一个页面上发送一些通知。但是今天,我想开发一个通知弹出窗口(我的后端在创建警报时发送消息等等),但我做不到。

我在解释:

要在完整的应用程序上打开 SockJSClient,我想将它添加到我的 header.tsx 或我的 app.tsx(主入口点)中 但它会导致错误“最大更新深度超过。[...] 以防止无限循环” 我尝试使用 websocket 状态或按钮添加条件,但这没有任何改变。 你有什么想法可以使它起作用(也许是在另一个地方初始化我的客户端?改变它以避免无限循环?使用 JS 而不是 balise)?

我这样做如下:

Websocket.tsx

return (
  <>
    {webSocketState !== WebSocketConnectionState.disCONNECTED && (
      <SockJsClient
        url={webSocketServerUrl}
        topics={[webSocketEndpoint]}
        headers={customHeaders}
        onConnect={this.handleWebSocketConnect}
        onConnectFailure={error => this.handleWebSocketError(error)}
        onMessage={data => this.handleWebSocketMessage(data)}
        ondisconnect={this.handleWebSocketdisconnect}
        autoReconnect={false}
        ref={client => {
          this.connect(client);
        }}
      />
    )}
    {popupState && (
      <div className="border border-dark bg-dark text-light p-2 m-1 popup">
        Popup
        <Button onClick={this.handleClickClose}>Fermer</Button>
      </div>
    )}
  </>
);

header.tsx

<Websocket />

感谢您的帮助,我希望得到一些答案,

问候, 弗洛里安

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)