/**
* 尝试发起连接并获取WebSocket。
*
* @return boolean
*/
tryConnectToHost() {
console.info("tryConnectToHost并获取connection开始了...");
var done = false;
var that = this;
try {
this.localSocket = uni.connectSocket({
url: 'ws://xxxxxxxxxxxxxxxxxxxxxxxxxxxx.com:3000/websocket',
header: {'content-type': 'text/xml'},//'application/json'},
success: (res) => {
console.info("WS.connectSocket - success (res=" + JSON.stringify(res) + ")!");
},
fail: (err) => {
console.info("WS.connectSocket - fail (err=" + err + ")!");
}
})
this.localSocket.onOpen((res) => {
if (uni.MBCore.debugEnabled()) {
console.info("WS.onopen - 连接已成功建立!");
}
})
//## WebSocket连接关闭时的回调处理
- 发布:2023-05-04 18:08
- 更新:2024-07-04 16:16
- 阅读:1445
【报Bug】生成的支付宝小程序无法支持uniapp的WebSocket代码,报“Cannot read properties of undefined (reading 'onOpen')”
产品分类: uniapp/小程序/阿里
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macos 12.6
HBuilderX类型: 正式
HBuilderX版本号: 3.7.10
第三方开发者工具版本号: 3.6.4
基础库版本号: 2.8.8
项目创建方式: HBuilderX
示例代码:
操作步骤:
直接用我的示例代码,进行websocket连接,在生成的支付宝程序中执行,就会报错。
直接用我的示例代码,进行websocket连接,在生成的支付宝程序中执行,就会报错。
预期结果:
正常建立WebSocket连接,不应报“TypeError: Cannot read property 'onOpen' of undefined”错误。
正常建立WebSocket连接,不应报“TypeError: Cannot read property 'onOpen' of undefined”错误。
实际结果:
生成的支付宝小程序,运行就报“Cannot read properties of undefined (reading 'onOpen')”错误!
生成的支付宝小程序,运行就报“Cannot read properties of undefined (reading 'onOpen')”错误!
bug描述:
基于uniapp的WebSocket API编写的IM程序,在Android真机、iOS真机、iOS模拟器、hbuiderX内置浏览器、Chrome浏览器、微信小程序中都能正常运行,但生成的支付宝小程序在支付宝小程序开发工具的模拟器和真机中运行时,均报“TypeError: Cannot read property 'onOpen' of undefined”错误!无法完成网络连接!
注:附件图片是在支付宝小程序开发工具中的报错信息。