uni-app 【报Bug】 uni.connectSocket 无法触发 socketTask.onOpen
uni-app 【报Bug】 uni.connectSocket 无法触发 socketTask.onOpen
示例代码:
H5 微信小程序 正常,APP下不正常 ,用了另一个网址 正常 用这个就不正常 ,在线wss都正常
socketTask = uni.connectSocket({
url: requestUrl,//不正常 机密信息中
//url: 'wss://plachta-vall-e-x.hf.space/queue/join',//正常
complete: (res) => {
console.log('处理完成', res)
}
});
socketTask.onError((obj) => {
//console.log(obj); 不正常的返回{}
});
socketTask.onOpen((data) => {
//console.log('链接成,准备发 ,不正常的 不进入')
});
function guid2() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
操作步骤:
调用代码复现 注意在APP上面 H5 和小程序正常
预期结果:
和其他平台一样进入 onOpen
实际结果:
进入 onError 但不返回内容
bug描述:
H5 微信小程序 正常,APP下不正常 ,用了另一个网址 正常 用这个就不正常 ,在线wss都正常
socketTask = uni.connectSocket({
url: requestUrl,//不正常 机密信息中
//url: 'wss://plachta-vall-e-x.hf.space/queue/join',//正常
complete: (res) => {
console.log('处理完成', res)
}
});
socketTask.onError((obj) => {
//console.log(obj); 不正常的返回{}
});
socketTask.onOpen((data) => {
//console.log('链接成,准备发 ,不正常的 不进入')
});
function guid2() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
使用 uni.connectSocket
在APP 安卓下 链接时返回 正常 但无法进入 onOpen
触发了 onError
但不返回错误内容,提供了一个不正常的网站和正常的网站,其中不正常的网站 可以正常使用在 H5 小程序上
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 11 | HBuilderX |
Android | 14 | |
手机厂商 | ||
手机机型 | ||
页面类型 | vue | |
vue版本 | vue2 | |
打包方式 | 云端 |
2 回复
有解决吗?
在使用 uni.connectSocket
时,如果 socketTask.onOpen
无法触发,可能是由于以下几个原因导致的。你可以根据这些原因进行排查和修复:
1. 网络问题
- 确保设备网络连接正常,能够访问到 WebSocket 服务器。
- 检查服务器地址是否正确,确保服务器地址是有效的 WebSocket 地址(以
ws://
或wss://
开头)。
2. 服务器问题
- 确保 WebSocket 服务器正常运行,并且能够接受连接。
- 检查服务器是否有防火墙或安全策略阻止了连接。
3. 代码问题
- 确保
uni.connectSocket
的调用是正确的,并且url
参数是有效的 WebSocket 地址。 - 确保
socketTask.onOpen
是在uni.connectSocket
返回的socketTask
对象上调用的。
示例代码:
const socketTask = uni.connectSocket({
url: 'wss://your.websocket.server',
success: () => {
console.log('WebSocket 连接成功');
},
fail: (err) => {
console.error('WebSocket 连接失败', err);
}
});
socketTask.onOpen((res) => {
console.log('WebSocket 已打开', res);
});
socketTask.onError((err) => {
console.error('WebSocket 错误', err);
});
socketTask.onClose((res) => {
console.log('WebSocket 已关闭', res);
});