1***@qq.com
1***@qq.com
  • 发布:2023-08-16 14:21
  • 更新:2023-08-16 14:21
  • 阅读:161

【报Bug】在Hbuilder 3.8.7版本 uts android 插件中 使用udp组播接收信息,造成vue页面阻塞,点击按钮均延迟,3.7.11无该问题

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Windows

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

HBuilderX版本号: 3.8.7

示例代码:

uts android 插件中(uni_modules/uts-udp/utssdk/app-android/index.uts)

export class UDPMulticast {  
    ....  
    listener(receive:UTSCallback) {  
        ...  
        this.socket  = new MulticastSocket(this.port);  
        const address = InetAddress.getByName(this.group);  
        this.socket?.joinGroup(address);    
        const buff = new ByteArray(1024);  
        const packet = new DatagramPacket(buff, buff.size, address, this.port);  
        setTimeout(()=>{  
            console.log(111);  
            if (this.socket == null) return  
            try {  
                this.socket?.receive(packet)   
                const msg = new String(buff, 0, packet.getLength())  
                console.log('msg', msg);  
                receive(msg)  
            } catch (e) {  
                console.log('e',e);  
            }  
        },100)  
    }  
        .....  
}

vue页面中(pages/index/index.vue)

<template>  
    <button @click="initUdp">开启UDP</button>  
        <button @click="test">测试</button>  
</template>  
import { UDPMulticast } from '../../uni_modules/uts-udp'    
export default {    
  ...  
  methods:{    
     initUdp(){    
         this.server = new UDPMulticast(MULTICAST_IP, MULTICAST_PORT)    
                this.server.listener((res) => {    
                    console.log("res",res);    
                })    
    },  
    test(){  
    console.log(‘test');  
    }  
  }    
}

操作步骤:

在vue页面调用initUdp

预期结果:

在Hbuilder3.8.7版本运行,点击页面测试按钮,能打印出值

实际结果:

在Hbuilder3.8.7版本运行,点击页面测试按钮,并不触发,仅当收到组播信息后,才延迟触发

bug描述:

在Hbuilder3.8.7版本,在页面调用 uts 插件,组播开始接收信息,即 socket.receive(packet),在信息收到之前,点击页面按钮不触发
但在Hbuilder3.7.11版本,无次问题

这导致我们的应用无法使用后续的Hbuilder新版本
这应该是Hbuilder升级后uts编译所带来的问题,望解答回复,谢谢

2023-08-16 14:21 负责人:DCloud前端团队 分享
已邀请:

要回复问题请先登录注册