收藏
回答

7.0.8版本Socket.onOpen事件在Socket.onMessage之前触发?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug SocketTask.onOpen 微信安卓客户端 7.0.8 2.9.3

如题。7.0.8版本SocketTask.onOpen事件在SocketTask.onMessage之前触发,在7.0.7版本和ios版本是SocketTask.onOpen先触发,具体情况可以看代码片段。

不知道是不是故意这样设计的,所以过来问一问,线上代码如果是这样写的:

this.socket.onOpen((res) => {
  console.log("onOpen");
  this.socket.onMessage((data) => {
     console.log("onMessage", data);
  });
});

将会丢失掉重要的东西,然而有一个socket.io的微信小程序库https://github.com/10cella/weapp.socket.io就是有这个问题,使用了这个库的同学线上代码将会全部遭殃。。(我就是其中一个。。)

希望官方解释下吧,不知道是不是故意这样设计的,还是bug

再传两张测试图吧


最后一次编辑于  2019-11-27
回答关注问题邀请回答
收藏

7 个回答

  • 小程序/小游戏开发-Link
    小程序/小游戏开发-Link
    2019-11-27
    感谢反馈,这个版本有做 WebSocket 底层实现的替换。有收到一些使用 socket.io 的开发者反馈,但都只是反馈异常,没有更有效的信息。你的这个反馈很有用,我们去排查下。
    2019-11-27
    有用
    回复 3
    • ,
      2019-11-27
      好的,希望能够调整过来顺序就最好了,哈哈,谢谢了
      2019-11-27
      回复
    • Geefib
      Geefib
      2019-11-28
      目前收集客户后台的日志发现,ws发不出的时候readyState状态是1,{"errMsg":"sendSocketMessage:fail"} &readyStateCode=1。有点奇怪。我可以有什么方式(在哪打日志)进一步跟进吗?
      2019-11-28
      回复
    • Geefib
      Geefib
      2019-11-28
      我们是使用原生自行包装的
      2019-11-28
      回复
  • 深蓝
    深蓝
    2022-03-17

    现在我也遇到这个问题了,请问如何解决???

    2022-03-17
    有用
    回复
  • 。...
    。...
    2020-01-09

    问下 , 所以正常情况下 onopen应该在onMessage之后触发? 我一直理解为无论发送信息还是接受信息都是在onopen之后的事。。。。。

    2020-01-09
    有用
    回复
  • 殷
    2019-12-21

    这问题依旧存在。。。一直没找到是什么原因,因为手头没有这样的测试机

    出问题的机器都是较新的华为机型,大几千块。。。作为个人开发者,买不起这种测试机


    有台机器就好自己修复了。。。没机器只能等官方或者其他人了

    2019-12-21
    有用
    回复
  • 阿白
    阿白
    2019-11-28

    终于有人详细说清问题了,我也用了socket.io,7.0.8后部分安卓手机不正常。

    我也试着反馈了,但没有仔细去研究到底是什么原因。谢谢楼主!

    2019-11-28
    有用
    回复
  • 在劫难逃的天真
    在劫难逃的天真
    2019-11-28

    请教下楼主 将会丢失掉重要的东西 是指什么? 具体表现呢?  我们没用socket.io库,但是ws也出现了问题。我们用的是stoom.js  发现大部分安卓手机无法连接上ws

    2019-11-28
    有用
    回复 3
    • ,
      2019-11-28
      因为socket.io是通过onMessage发过来的特殊字段来判断连接成功,然而onMessage在onOpen之后,所以如果按照上面这样写就会监听不到连接成功事件,stoom我就不太清楚了,你可以在社区里面再搜下
      2019-11-28
      回复
    • 在劫难逃的天真
      在劫难逃的天真
      2019-11-28回复
      好的 感谢。那也就是说 按照上面的写法 监听不到连接成功事件,那岂不是就是连接不上ws?
      2019-11-28
      回复
    • 阿白
      阿白
      2019-11-28
      我试了也不是连不上,而是连上需要很多时间,超过20秒!
      2019-11-28
      回复
  • 徐
    2019-11-27
    你好,我想咨询小程序视频开发
    2019-11-27
    有用
    回复
登录 后发表内容
问题标签