z***@outlook.com
z***@outlook.com
  • 发布:2024-07-13 03:25
  • 更新:2024-07-13 03:25
  • 阅读:46

【报Bug】channel 应用后台放置一会后,再使用时客户端监听不到unicloud的写入

分类:uniCloud

产品分类: uniCloud/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 Version 23H2

HBuilderX类型: 正式

HBuilderX版本号: 4.15

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: mate60pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
// 客户端代码  
export default {  
  data() {},  
  onLoad() {},  
  methods: {  
    async testSSE() {  
      const channel = new uniCloud.SSEChannel() // 创建消息通道  
      channel.on('message', (message) => { // 监听message事件  
        console.log('on message', message);  
      })  
      channel.on('end', (message) => { // 监听end事件,如果云端执行end时传了message,会在客户端end事件内收到传递的消息  
        console.log('on end', message);  
      })  
      await channel.open() // 等待通道开启  
      const massiveTaskObj = uniCloud.importObject('massive-task-obj')  
      const res = await massiveTaskObj.excuteTask({  
        channel: channel // 调用云对象时传入通道对象  
      })  
    }  
  }  
}
// 云对象massive-task-obj代码  
module.exports = {  
  excuteTask(param) {  
    const channel = uniCloud.deserializeSSEChannel(param.channel)  
    await channel.write({  
      a: 1  
    })  
    await channel.write({  
      a: 2  
    })  
    await channel.write({  
      a: 3  
    })  
    await channel.write({  
      a: 4  
    })  
    await channel.end({  
      a: 5  
    })  
    return {}  
  }  
}

操作步骤:

后台放置一会

预期结果:

正常监听到unicloud端的写入

实际结果:

所有监听函数完全没反应

bug描述:

每次都是新建channel传递给unicloud端,进行写入。正常状态是每次触发都能监听到写入,
一但切后台一会儿再切回来再次触发时,客户端监听不到unicloud的写入了,直到请求正常结束。
每次触发都是新建的channel,完全没有头绪,

只能关闭软件重启,才正常。但切到后台一会儿再回来就又坏了。只能关闭重启

是uni-push本身有什么问题么,只要重启就可以了,而channel使用只是在一个页面并且每次触发都是新建,为什么和软件的重启有关系,是依赖的uni-push环境的问题么

没人处理这个bug么

2024-07-13 03:25 负责人:无 分享
已邀请:

要回复问题请先登录注册