1***@qq.com
1***@qq.com
  • 发布:2023-01-16 19:43
  • 更新:2023-02-06 11:38
  • 阅读:304

【报Bug】新版本 websocket 有问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.6.17

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: 小米12

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
const task = uni.connectSocket({  
                    url: '',  
                    complete() {},  
                })  
                task.onOpen(() => {console.log(333)})  
                task.onMessage(res => {  
                    console.log('收到message', res)  
                });

操作步骤:

连接websocket,server下发消息,端上看消息不正常

预期结果:

server下发什么消息,端上收到该消息

实际结果:

收到的消息是 {"data":"{\"@type\":\"binary\",\"base64\":\"IQAAAAd1c2VyMDAxABZlVXBpeVBVOEFGTmExeWpUUy1XX1Z6AAABhbpcRgI=\"}"}
非下发的消息

bug描述:

在 3.1.22 版本没问题
在 最新版本出现问题,现象:
建立websocket连接后,server下发二进制数据,tcp 抓包看着数据正常,到了websocket.onMessage 中 收到的是 {"data":"{\"@type\":\"binary\",\"base64\":\"IQAAAAd1c2VyMDAxABZlVXBpeVBVOEFGTmExeWpUUy1XX1Z6AAABhbpcRgI=\"}"} 。

2023-01-16 19:43 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

说明一下,服务下发的是ArrayBuffer 。在uniapp打的包在浏览器中打印如图,在 安卓中如问题描述的实际结果

1***@qq.com

1***@qq.com (作者)

问题补充:
明确出现问题的版本是 3.6.17 。
经排查是 uni 的bug,这里的data 类型应该是对象而不是字符串

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