7.0.8版本Socket.onOpen事件在Socket.onMessage之前触发?
发布于 7 年前 作者 cliang 8210 次浏览 来自 官方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 回复

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

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

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

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

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

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

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

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

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

回到顶部