未来云图
未来云图
  • 发布:2022-02-15 09:29
  • 更新:2022-02-15 12:35
  • 阅读:473

【报Bug】HBuiderX真机运行socket代码正常工作,但正式打包后不工作

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 7

HBuilderX类型: 正式

HBuilderX版本号: 3.3.11

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: vivo

手机机型: v1801A0

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

this.ws = uni.connectSocket({
url:ws://${this.url}:${this.port},
success(){
console.log('conn ok')
},
complete: (res)=> {
}
}) 这里的success()在正式打包和真机调试都是正常的

预期结果:

console.log('connection^^^^^^^') 这是要预期出现的结果

实际结果:

正式打包无反应输出。

bug描述:

init () {
const that = this
this.ws = uni.connectSocket({
url:ws://${this.url}:${this.port},
success(){
console.log('conn ok')
},
complete: (res)=> {
}
})
this.ws.onOpen(() => this.onOpen())
//uni.onSocketOpen((res) => this.onOpen());
this.ws.onMessage((msg) => this.onMessage(msg))
this.ws.onClose(() => this.onClose())
this.ws.onError(() => this.onError())
} 这是前端代码,在运行到chrome 或是运行到真机正常工作,但是正式打包后不工作。
下边一部分是后端代码,采用ws库。
init () {
this.wss = new ws.Server({port:this.port,...this.options})
const that = this
// 连接信息
this.wss.on('connection', (ws) => {
console.log('connection^^^^^^^')
ws.isAlive = true
ws.on('message', (msg)=>{
that.onMessage(ws,msg.toString())
})
ws.on('close', () =>{that.onClose(ws)})
})
this.wss.on('error',(err)=>{
console.log(err)
})
this.heartbeat()
}

2022-02-15 09:29 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

请上传一个能重现问题的测试工程

未来云图

未来云图 (作者) - 软件编程爱好者

您好,就是上传到云打包生成apk。 原理是这样的就是一打开软件,就是初始化websocket,这样就和egg后端建立通讯联系,后端this.wss.on('connection', (ws) => {
console.log('connection^^^^^^^') 侦听到connection就会输出console.log('connection^^^^^^^') ,但是正式打包后就不能通讯,我用Hello打包也不工作。不知这发行正式打包和发行真机调试区别在哪里,百思不得解。

未来云图

未来云图 (作者) - 软件编程爱好者

哪位大神给指点一下!!!

该问题目前已经被锁定, 无法添加新回复