收藏
回答

TCPSocket.onMessage回调函数在socket断开重连后重复响应,需要怎样消除重复?

第一次连接后TCPSocket.onMessage的回调函数收到数据响应1次正常。但当连接断开后再次连接,TCPSocket.onMessage的回调函数收到数据会重复。重连多少次,当收到数据时会重复多少次。想尽各种办法也没解决,而且不同方法验证就是重新连接接收数据回调会重复调用。若通过TCPSocket.offMessage关闭数据响应也能关闭。若用TCPSocket.onMessage继续回调,接收数据重复次数一样。TCPSocket.onClose在回调函数中需要offClose关闭,在连接前回调onClose,这样onClose回调只响应一次,否者也会响应多次。但这种方法用着Message中不管用。有大神知道吗?折腾两天了,急死了。

回答关注问题邀请回答
收藏

5 个回答

  • 古枫
    古枫
    2023-01-05

    请问这个问题有解决了么?


    2023-01-05
    有用 1
    回复 1
    • 明天过后
      明天过后
      2023-01-28
      这个问题在真机上不会出现
      2023-01-28
      回复
  • SupermanVV
    SupermanVV
    2023-06-14

    把回调函数作为一个变量,重连之前先调用offXXX方法

    2023-06-14
    有用
    回复 1
    • 春风十级
      春风十级
      2023-06-16
      调用后,再连接接受不到消息了
      2023-06-16
      回复
  • 明天过后
    明天过后
    2023-01-12

    同问,这个问题解决了吗?

    2023-01-12
    有用
    回复
  • 高洋
    高洋
    2022-11-10

    请问解决了吗,我也是这个问题,一模一样

    2022-11-10
    有用
    回复
  • 养乐多💍
    养乐多💍
    2022-11-10

    坑啊,一模一样的遭遇

    2022-11-10
    有用
    回复 3
    • 养乐多💍
      养乐多💍
      2022-11-10
      我解决这个问题了,tcp全局创建一次,onMessage全局创建一次,只要小程序不卸载tcp就一直连着,这样就不会有任何问题了
      2022-11-10
      1
      回复
    • 高洋
      高洋
      2022-11-10回复养乐多💍
      有试过tcp重连吗,就是执行多次tcp.connect({ip,port})之后,onMessage 不会重复吗、?
      2022-11-10
      回复
    • 养乐多💍
      养乐多💍
      2022-11-11回复高洋
      重连肯定会重复的,就是因为这个问题才翻到了你的文章
      2022-11-11
      回复
登录 后发表内容