钉钉小程序Websocket链接问题

钉钉小程序Websocket链接问题

  • 问题描述:在某一页面使用Stomp发送websocket收取信息,点击返回上一页后,再次点击会出现多个websocket信息发送,同时接收到多个服务器发来的信息。打开监听是多个打开,关闭也是多个关闭。

钉钉小程序Websocket链接问题_第1张图片

  • 原使用关闭方法:(有问题)

  •   /**
       * 关闭websocket
       * */
    
      closeWebSocket() {
        dd.closeSocket({
          success: (res) => {
            console.log('关闭成功', res)
            this.setData({
              sendData: {},
            })
          },
          fail: (res) => {
            console.log('关闭失败')
          },
        })
      },
    
不能关闭原因:返回上一页时只是关闭了钉钉websocket的链接,并没有关闭dd对于该websocket的监听,所以在页面回来的时候会自动打开之前的监听,导致将之前的信息重复发送。
  • 解决办法:
  • 将所有钉钉有关socket的监听,操作都关闭。
  /**
   * 关闭websocket
   * */

  closeWebSocket() {
    dd.closeSocket({
      success: (res) => {
        console.log('关闭成功', res)
        this.setData({
          sendData: {},
        })
      },
      fail: (res) => {
        console.log('关闭失败')
      },
    dd.offSocketClose();
    dd.offSocketMessage();
    dd.offSocketOpen();
    dd.offSocketError();
  },

你可能感兴趣的:(钉钉小程序)