DylanJi
DylanJi
  • 发布:2019-07-27 12:28
  • 更新:2019-08-28 11:41
  • 阅读:2123

【报Bug】webSocket 在App中无法收取数据

分类:uni-app

详细问题描述

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

[内容]

在manifest.js 中设置了 "usingComponents" : true(app-plus 模块下的)。然后运行一段简单的代码,连接一个websokcet,在真机上进行调试,发现始终无法触发 uni.onSocketMessage 这个函数。但是在网页端是不存在这个问题的。
一旦我后成 "usingComponents" : false ,重新在手机上运行后,就没有这个问题了,所有的流程都正常了

重现步骤

[步骤]

[结果]

[期望]

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

IDE运行环境说明

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

[IDE版本号] 2.1.3.20190723

[windows版本号] Windows 10

[mac版本号]

uni-app运行环境说明 所有的安卓手机都有这个问题

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

[运行端版本号]

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

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

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

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

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

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-07-27 12:28 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

onSocketMessage 直接测试未复现问题
可能需要特殊的环境才能复现,需要提供一下测试用的示例。
另外可以先使用插件市场的 plus-websocket 试试

  • DylanJi (作者)

    我websocket服务器和本地的传输,使用的是ArrayBuffer,不是string,这个可能是问题所在

    2019-08-14 12:45

  • DCloud_UNI_GSQ

    回复 DylanJi: 目前未支持ArrayBuffer类型的数据,可以尝试使用提供的插件来临时解决。

    2019-08-14 19:22

hhyang

hhyang - 如有问题,请添加QQ1606726660 备注付费咨询

检查你的协议 后台配合联调下。看看是不是后台没获取到参数所以会断开,而收不到消息的。

推荐使用这个全局插件

  • DylanJi (作者)

    我这边后台进行了跟踪,确实连接成功,然后我服务端也给客户端发送了数据。就是在移动端始终无法触发OnSocketMessage.而一旦修改了usingComponents=false后,问题就解决了,所以我怀疑是跟这个变量有关,也许是个bug

    2019-07-27 14:04

  • hhyang

    回复 DylanJi: usingComponents改为false 强烈不建议 那是老版的编译模式,使用最新的。试试我推荐给你那个呢

    2019-07-27 15:28

  • ginvi

    回复 DylanJi: 今天我又测试了,安卓平台下如果服务端发送报文的格式是二进制就不能收到消息,如果是TEXT类型就没有问题。这个应该是个BUG。

    2019-07-31 09:09

ginvi

ginvi - full stack

确实存在这个问题,但是这个问题可能跟通讯协议有关系。onSocketMessage如果连的是 ws://echo.websocket.org 是可以触发的。甚至1606726660@qq.com 提供的nodejs的server也是可以收到消息的。但是如果是其他的websocket server。这个server在ios以及web下面都是可以正常服务的。一旦客户端是android就不能收消息。

  • DylanJi (作者)

    您是不是uni官方的工作人员?这个bug是不是需要确认修复下。我们下次升级的时候想把这个改一下

    2019-08-05 14:07

  • ginvi

    回复 DylanJi: 不是啊,我也需要用到。官方建议使用plus-sockeet,plus-socket在安卓下没有问题,在ios有点问题,还在看。

    2019-08-05 14:12

1***@qq.com

1***@qq.com - 一句话,干,遇见问题就干他,干不了他,找办法

各位大侠,现在这个问题解决了吗

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