收藏
回答

websocket报错 fail wcwss exceed max concurrent count

问题类型 插件 AppID 插件版本号 AppID 微信版本 基础库版本
Bug wx7279a29ef86a3002 1.1.8 wx7279a29ef86a3002 7.0.15 2.12.2

确定当前websocket连接数量只有一个,上次就是2.12.2的错误,这次还是,希望尽快处理

更新========

确认问题是在插件插件内创建websocket readyState属性消失


最后一次编辑于  2020-08-26
回答关注问题邀请回答
收藏

7 个回答

  • 小程序技术专员-SgLy
    小程序技术专员-SgLy
    2020-08-26

    这个是预期现象,是 2.12.2 为了支持在插件中通过本地局域网 ip 进行网络请求的特性做出的改动。为了支持这个特性,SocketTask 刚创建出来的时候,需要进行一些异步的准备工作,处于挂起状态,因此没有办法支持 wx.connectSocket 之后直接同步去取属性;更新前如果在小程序启动时就创建任务也是会遇到同样情况的。另外,readyState 本身是我们内部使用的字段,其实是从来没有在文档说明过的,既不推荐使用,也不保证它的可用性;如果需要监听和获取 SocketTask 的状态,推荐使用 onOpen、onClose、 onError 等监听方法去获取

    2020-08-26
    有用 1
    回复 6
    • 99的承诺
      99的承诺
      2020-08-26
      目前这样的改动是几个问题:
      1,如果不已readyState作为判断连接状态的标志,使用 onOpen、onClose、 onError 等监听方法去获取的连接状态是不稳定的,容易在使用send方法时出现报错 readyState is not OPEN。
      2,如果可以在onOpen内可以表示稳定发送数据,经过之前测试,在收到onOpen监听时立刻发送数据包,容易出现readyState 为connecting状态,导致发送数据包失败异常。
      3,如果只使用 onOpen、onClose、 onError 等监听方法去获取连接状态,是不是获取的状态不完善?众所周知,websocket连接状态一共有四种,CONNECTING,OPEN,CLOSING,CLOSED。如果没有准确的状态反馈,我在执行其他操作时,没有准确的把握,比如处于CLOSING时,再执行close方法就会造成websocket连接异常。
      4,在官方分享的开发经验,也是建议用readyState判断的(https://developers.weixin.qq.com/community/develop/doc/0002a4fcfe4b00b104772017351409?highLine=websocket
      5,我理解由新功能产生的改动,但是不理解为什么将websocket底层提供的准确度高的属性直接进行砍掉?
      基于以上理由,为了小程序稳定的角度,建议回滚2.12.1版本基础库,以及重新考虑基础库2.12.2版本兼容问题。感谢回复,希望对以上问题进行解惑。
      2020-08-26
      回复
    • 小程序技术专员-SgLy
      小程序技术专员-SgLy
      2020-08-26回复99的承诺
      讨论了一下,这个字段还是会想办法暴露出来;不过现在也有其他地方需求 2.12.2 的功能,我们会继续灰度 2.12.2,灰度完成后立刻再覆盖一个能兼容这个字段的版本,带来不便非常抱歉
      2020-08-26
      1
      回复
    • 99的承诺
      99的承诺
      发表于移动端
      2020-08-26回复小程序技术专员-SgLy
      感谢理解,咱们预计什么时间可以恢复使用readyState字段?还有可不可以加速我们的插件的审核速度?我们因为这个原因需要更新插件用来做适配兼容,希望可以理解。
      2020-08-26
      回复
    • Bo-Tree
      Bo-Tree
      2020-09-01回复小程序技术专员-SgLy
      大概什么时间恢复?
      2020-09-01
      回复
    • 小程序技术专员-SgLy
      小程序技术专员-SgLy
      2020-09-01回复Bo-Tree
      已经开始灰度用户,今天内就能恢复
      2020-09-01
      回复
    查看更多(1)
  • 雪雪耶!
    雪雪耶!
    2023-06-27

    这都2023了,我的程序报了同样的错误,请问楼主后来解决了吗?


    2023-06-27
    有用
    回复
  • Bo-Tree
    Bo-Tree
    2020-08-28

    我这边也是,插件内基本不可用了。线上很多小程序在用插件,这坑挖的,啥时候解决这个问题!!! 总不能让别人小程序都强制升级吧


    2020-08-28
    有用
    回复
  • 浅笑〆
    浅笑〆
    2020-08-27

    用插件使用websocket 就出问题,用源码使用正常,这是什么问题


    2020-08-27
    有用
    回复
  • 李占卫
    李占卫
    2020-08-26

    8月21日就是2.12.2出问题,今天又是,没过几天啊,难道就是代码回滚下今天又推上线了?

    2020-08-26
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-08-26

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-08-26
    有用
    回复 9
    • 99的承诺
      99的承诺
      2020-08-26
      在插件内初始化websocket对象成功 ,对象readyState属性消失了
      2020-08-26
      回复
    • 99的承诺
      99的承诺
      2020-08-26
      官方呢?求回复啊,在插件内是毕现的,基础库更新到2.12.2后,在插件内创建websockt对象 readyState 属性消失了?
      2020-08-26
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2020-08-26回复99的承诺
      收到,我们确认下
      2020-08-26
      1
      回复
    • 99的承诺
      99的承诺
      2020-08-26回复疯狂的小辣椒
      麻烦尽快跟进一下,线上用户正在大面积报错,无法使用插件
      2020-08-26
      回复
    • 99的承诺
      99的承诺
      2020-08-26回复疯狂的小辣椒
      如果确认问题了,短时间不能修复,能不能回滚到2.12.1版本?
      2020-08-26
      回复
    查看更多(4)
  • 99的承诺
    99的承诺
    2020-08-26

    在插件内是必现的问题,基础库更新到2.12.2后,在插件内创建websockt对象 readyState 属性消失了,如果不能快速解决,可不可以回滚基础库版本啊?

    

    2020-08-26
    有用
    回复
登录 后发表内容
问题标签