DylanJi
DylanJi
  • 发布:2019-10-28 18:23
  • 更新:2019-11-04 11:56
  • 阅读:2212

【报Bug】uni的websocket有时候收到的数据无法解析,会报错

分类:uni-app

详细问题描述

我的项目里面,有个websocket,在安卓机器上调试的时候,经常会有如下的错误:

15:45:50.220 thirdScriptError
15:45:50.241 "atob" failed;undefined
15:45:50.283 St
15:45:50.408 consume
15:45:50.431 map@[native code]

一旦这个错误发生后,socket后面的信息就会出问题。
我用的传输模式是arrayBuffer
另外,我做了些测试,当我把一些数据的指令简化后,就不会出现这个问题了。
同样的数据传输,我用plus-websocket插件,就不会报错。所以这个应该是底层的一个bug。
一旦发生了这个bug,onMessage函数里的参数就为 undefined

如果需要,我可以想办法开放我们的测试服务器进行调试,只是希望可以早点儿解决这个问题。

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX 2.3.7

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
app 安卓

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建

[编译模式是老模板模式还是新的自定义组件模式?]
自定义模式

App运行环境说明

[Android版本号]
安卓9

[iOS版本号]

[手机型号]
华为Mate10

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-10-28 18:23 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 2.3.8 alpha 已修复此问题

Android_TRY

Android_TRY

发一个复现问题的demo吧。

  • DylanJi (作者)

    附件里面已经有一个Demo了

    2019-10-31 18:42

  • ManX

    浏览器里是正常的~ 安卓端就出错了, 苹果的还没试

    2019-10-31 19:55

  • DylanJi (作者)

    帮忙看下这个bug吧,已经在附件里面提供了一个demo了

    2019-11-01 09:43

ManX

ManX

uni.request有同样的问题, 类型是 arraybuffer 浏览器正确, 在安卓手机上有时候返回res.data直接是undefined~~

ManX

ManX

希望官方看一下~~~

ManX

ManX

官方看到回复下呗~~~

DCloud_UNI_GSQ

DCloud_UNI_GSQ

问题模板补充完整

  • DylanJi (作者)

    已经补充完成

    2019-10-29 12:10

  • ManX

    uni.request有同样的问题, 类型是 arraybuffer 浏览器正确, 在安卓手机上有时候返回res.data直接是undefined~~

    论坛链接: https://ask.dcloud.net.cn/question/79874

    2019-10-29 13:48

  • ManX

    还需要提供什么???

    2019-10-29 15:06

  • ManX

    还需要提供什么???

    2019-10-29 15:49

  • DylanJi (作者)

    我这边终于整出个例子来,这里面是连接我的一个服务器,然后会自动收到数据,收到数据后就会报错。我这边的测试手机为华为Mate10, 小米平板4.估计其他手机上也有这个问题。

    目前我已经把我的工程文件放在附件里面了,你们下载下来后可以试一下。很容易就模拟出来了。

    如果定位到了问题,还希望可以尽快修复,websocket还是比较基本的一个通信模块,我们现在迫切想要修复这个问题。

    如果服务器连接不上,你可以直接电话联系我:13917432416

    2019-10-31 18:28

ManX

ManX

还需要提供什么,怎么配合把问题解决~~~~

DCloud_UNI_GSQ

DCloud_UNI_GSQ

nvue页面还是vue页面?

  • ManX

    vue

    2019-10-29 17:17

  • DCloud_UNI_GSQ

    回复 ManX: 复现的几率高么?

    2019-10-29 17:43

  • ManX

    回复 DCloud_UNI_GSQ: 挺高的, 浏览器一切都正常,手机上调试跟踪返回值直接是undefined

    2019-10-30 08:33

  • ManX

    回复 DCloud_UNI_GSQ: 但是需要连我们服务器, 代码量也挺多

    2019-10-30 09:29

  • ManX

    类型是 arraybuffer的应该还是有点问题~ 你们这边是解析错误还是什么情况会出现 undefined?

    2019-10-30 09:58

  • ManX

    回复 DCloud_UNI_GSQ: 我不知道你们那边能不能复现, 应该跟中文字有关,有中文的特别容易出错

    2019-10-30 14:01

  • ManX

    回复 DCloud_UNI_GSQ: 有没有其它沟通方式,这样回帖几个小时也没人理~~~

    2019-10-30 15:56

  • ManX

    回复 DCloud_UNI_GSQ: 有什么其它方法绕过去或者怎么样吗?

    2019-10-31 11:23

ManX

ManX

有没有其它沟通方式,这样回帖几个小时也没人理~~~

L***@163.com

L***@163.com

顶!我也遇到了这个问题,求解决啊 大佬!

gjx200

gjx200

再顶一个!我也遇到了,求解决

  • gjx200

    希望早点解决

    2019-10-30 16:43

ManX

ManX

有没有其它沟通方式,这样回帖几个小时也没人理~~~

DylanJi

DylanJi (作者)

目前已经给出了能够重复出bug的测试用例,这个是我们在多次重复后才能够找到的一条出错指令,希望官方可以借助这个机会,尽快的确认下这个bug.

  • Android_TRY

    ios有这个问题吗?

    2019-11-01 13:02

  • DylanJi (作者)

    回复 Android_TRY: IOS上我们测试这个是没有问题的,你们如果能发现安卓上的bug的时候,可以顺便看下IOS上有没有类似的问题

    2019-11-01 13:53

  • Android_TRY

    回复 DylanJi: 说下QQ,我加你

    2019-11-01 15:11

  • DylanJi (作者)

    回复 Android_TRY: 827274910

    2019-11-01 15:39

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