Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
xu-zhipeng opened this issue May 9, 2024 · 0 comments
Open

Comments

@xu-zhipeng
Copy link

xu-zhipeng commented May 9, 2024

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)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant