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

发布于 8 年前作者 cliang8486 次浏览最后编辑 8 年前来自 issues

如题。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

再传两张测试图吧

6 回复
jiejin
jiejin1 楼6 年前

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

yan37
yan372 楼6 年前

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

gang79
gang793 楼6 年前

感谢反馈,这个版本有做 WebSocket 底层实现的替换。有收到一些使用 socket.io 的开发者反馈,但都只是反馈异常,没有更有效的信息。你的这个反馈很有用,我们去排查下。

jie78
jie784 楼6 年前

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

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

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

yan04
yan045 楼6 年前

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

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

zengwei
zengwei6 楼6 年前

你好,我想咨询小程序视频开发