uni-app
uni-app copied to clipboard
SocketTask.onError 无法返回errMsg信息,导致错误无法判断
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)
}