uni-app icon indicating copy to clipboard operation
uni-app copied to clipboard

SocketTask.onError 无法返回errMsg信息,导致错误无法判断

Open xu-zhipeng opened this issue 1 year ago • 0 comments
trafficstars

https://uniapp.dcloud.net.cn/api/request/socket-task.html#sockettask-onerror 第一个问题: SocketTask.onError 无法返回errMsg信息,导致错误无法判断,返回的是一个{}

第二个问题: 同一个websocket连接,在H5端可以进行交互发信息,再APP端无法进行交互,连接上之后就报onError

详细描述: 使用uniapp 进行websocket(发现h5端也是使用原生的webSocket,app端使用自己实现的socket),但是目前发现h5端可以的,app端就不行,网络环境一样,什么都没变,应该uniapp实现的socket有问题吧 希望各位大佬帮忙解决下!

具体代码(demo):

const uniappTest = () => {
  const socketTask: UniNamespace.SocketTask = uni.connectSocket({
    url: 'wss://xrplcluster.com',
    multiple: true,
    success: () => {
      console.log('uni-app test connect success')
    },
    complete: () => {
      console.log('uni-app test connect complete')
    },
    fail: (error) => {
      console.log('uni-app test connect fail', error)
    },
  })
  socketTask.onOpen((result) => {
    console.log('uni-app test onOpen', result)
  })
  socketTask.onMessage((result) => {
    console.log('uni-app test onMessage', result)
  })
  socketTask.onError((result) => {
    console.log('uni-app test onError', result)
  })
  socketTask.onClose((result) => {
    console.log('uni-app test onClose', result)
  })

  setTimeout(() => {
    socketTask.send({
      data: JSON.stringify({
        id: 1,
        command: 'server_info',
        counters: false,
      }),
      success: () => {
        console.log('uni-app test send success')
      },
      complete: () => {
        console.log('uni-app test send complete')
      },
      fail: (result) => {
        console.log('uni-app test send fail', result)
      },
    } as UniNamespace.SendSocketMessageOptions)
  }, 3000)

  // 延时10秒关闭连接
  setTimeout(() => {
    socketTask.close({
      code: 1000,
      reason: 'End of use',
      success: () => {
        console.log('uni-app test close success')
      },
      complete: () => {
        console.log('uni-app test close complete')
      },
      fail: (result) => {
        console.log('uni-app test close fail', result)
      },
    } as UniNamespace.CloseSocketOptions)
  }, 10000)
}

xu-zhipeng avatar May 09 '24 16:05 xu-zhipeng