文章目录
- 随着百度小程序的风头正劲,越来越多的站长投入到百度小程序的开发中来,但是开发过程中难免会碰到诸多问题无法自己解决,08-02小编发现百度用户:【王牌牛牛】提出了一个关于“websocket中途偶现中断问题”的问题,在问题中开发者王牌牛牛对该问题做了如下阐述:
- 问题类型:bug
- this.ws = new Promise((resolve, reject) => { const socketHandler = MiniProgramAPI.getAPI().connectSocket({ url: addr, success: res => { logger.warn(‘ProtoLink.connectSocket success: ‘ + res.socketTaskId); }, fail: err => { reject(err); logger.warn(‘ProtoLink.connectSocket fail’ + JSON.stringify(err)); } }); socketHandler.onOpen(res => { logger.log(‘ProtoLink.onopen’ + JSON.stringify(res)); //res.header是undefined,没必要输出 this.connected = true; if (this.linkHandler) { this.linkHandler.onopen(); } resolve(socketHandler); }); }); send(data) { this.ws.then(socketHandler => { console.log(‘socketHandler’, socketHandler); socketHandler.send({ data: data.buffer, success: res => { // logger.warn(‘ProtoLink.send wx sendSocketMessage success. size=’ + data.byteLength); }, fail: err => { logger.error(‘ProtoLink.send sendSocketMessage err=’ + JSON.stringify(err)); //发送失败回调时,ProtoLink可能被析构? // if (this != null && (typeof this !== ‘undefined’)) { // this.connected = false; // this.ws = null; // if (this.linkHandler) { // this.linkHandler.onerror(err); // this.linkHandler = null; // } // } } }); }); } 短时间内链接正常,中途就会出现“请先调用connect方法,且send方法需在onOpen方法内的回调中调用”的错误了 该图片引用百度小程序公众平台 注:以上是百度小程序开发者:”王牌牛牛”对于本问题的一些阐述,这里做一个引用,我们将实时关注百度小程序助手对该问题提出的解决方案。
- 【09-03】百度官方对用户王牌牛牛提出的websocket中途偶现中断问题给予如下回复 同上~
- 百度小程序依托百度庞大的用户搜索基础,根据用户的搜索习惯,以此来找到目标用户,更好的帮助企业直达客户,服务客户。当用户在搜索引擎上进行需求的搜索时,搜索引擎会记录下当前的搜索内容,并且会根据商家的信息来进行匹配,如果你的百度小程序名称出现在搜索结果中,那么你将面临更大的被访问和交流的可能。 如果您也在使用百度小程序,请关注我们,如果您有关于百度小程序的使用问题请联系我们,或者去百度小程序平台找官方人员给予解决,相信百度在小程序上的发力会是一个里程碑!
随着百度小程序的风头正劲,越来越多的站长投入到百度小程序的开发中来,但是开发过程中难免会碰到诸多问题无法自己解决,08-02小编发现百度用户:【王牌牛牛】提出了一个关于“websocket中途偶现中断问题”的问题,在问题中开发者王牌牛牛对该问题做了如下阐述:
- 问题类型:bug
this.ws = new Promise((resolve, reject) => { const socketHandler = MiniProgramAPI.getAPI().connectSocket({ url: addr, success: res => { logger.warn(‘ProtoLink.connectSocket success: ‘ + res.socketTaskId); }, fail: err => { reject(err); logger.warn(‘ProtoLink.connectSocket fail’ + JSON.stringify(err)); } }); socketHandler.onOpen(res => { logger.log(‘ProtoLink.onopen’ + JSON.stringify(res)); //res.header是undefined,没必要输出 this.connected = true; if (this.linkHandler) { this.linkHandler.onopen(); } resolve(socketHandler); });
});
send(data) {
this.ws.then(socketHandler => { console.log(‘socketHandler’, socketHandler); socketHandler.send({ data: data.buffer, success: res => { // logger.warn(‘ProtoLink.send wx sendSocketMessage success. size=’ + data.byteLength); }, fail: err => { logger.error(‘ProtoLink.send sendSocketMessage err=’ + JSON.stringify(err)); //发送失败回调时,ProtoLink可能被析构? // if (this != null && (typeof this !== ‘undefined’)) { // this.connected = false; // this.ws = null; // if (this.linkHandler) { // this.linkHandler.onerror(err); // this.linkHandler = null; // } // } } }); });
}
短时间内链接正常,中途就会出现“请先调用connect方法,且send方法需在onOpen方法内的回调中调用”的错误了

该图片引用百度小程序公众平台
this.ws = new Promise((resolve, reject) => { const socketHandler = MiniProgramAPI.getAPI().connectSocket({ url: addr, success: res => { logger.warn(‘ProtoLink.connectSocket success: ‘ + res.socketTaskId); }, fail: err => { reject(err); logger.warn(‘ProtoLink.connectSocket fail’ + JSON.stringify(err)); } }); socketHandler.onOpen(res => { logger.log(‘ProtoLink.onopen’ + JSON.stringify(res)); //res.header是undefined,没必要输出 this.connected = true; if (this.linkHandler) { this.linkHandler.onopen(); } resolve(socketHandler); });
});
send(data) {
this.ws.then(socketHandler => { console.log(‘socketHandler’, socketHandler); socketHandler.send({ data: data.buffer, success: res => { // logger.warn(‘ProtoLink.send wx sendSocketMessage success. size=’ + data.byteLength); }, fail: err => { logger.error(‘ProtoLink.send sendSocketMessage err=’ + JSON.stringify(err)); //发送失败回调时,ProtoLink可能被析构? // if (this != null && (typeof this !== ‘undefined’)) { // this.connected = false; // this.ws = null; // if (this.linkHandler) { // this.linkHandler.onerror(err); // this.linkHandler = null; // } // } } }); });
}
短时间内链接正常,中途就会出现“请先调用connect方法,且send方法需在onOpen方法内的回调中调用”的错误了

该图片引用百度小程序公众平台
注:以上是百度小程序开发者:”王牌牛牛”对于本问题的一些阐述,这里做一个引用,我们将实时关注百度小程序助手对该问题提出的解决方案。
【09-03】百度官方对用户王牌牛牛提出的websocket中途偶现中断问题给予如下回复
同上~
百度小程序依托百度庞大的用户搜索基础,根据用户的搜索习惯,以此来找到目标用户,更好的帮助企业直达客户,服务客户。当用户在搜索引擎上进行需求的搜索时,搜索引擎会记录下当前的搜索内容,并且会根据商家的信息来进行匹配,如果你的百度小程序名称出现在搜索结果中,那么你将面临更大的被访问和交流的可能。
如果您也在使用百度小程序,请关注我们,如果您有关于百度小程序的使用问题请联系我们,或者去百度小程序平台找官方人员给予解决,相信百度在小程序上的发力会是一个里程碑!