收藏
回答

报告一个关于WebSocket接口的问题

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

在v1.02.1910120版本开发工具中,当websocket服务器不可用时,调用wx.connectSocket会同时触发wx.onSocketError和wx.onSocketClose,并返回{errMsg:"未完成的操作"}和{code:1006,reason:"abnormal closure"},但是在真机调试时,则只会触发wx.onSocketError,并返回{errMsg:"exception onOpen fail code:20, msg:Invalid HTTP status."}

手里没有苹果手机,只测试了安卓。

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

4 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    11-20

    你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    11-20
    赞同
    回复 1
    • 许周潮
      许周潮
      11-21
      问题流程:PC调试、真机调试和体验版调试wx.connectSocket返回值不一致。在v1.02.1910120版本开发工具中,当websocket服务器不可用时,调用wx.connectSocket会同时触发wx.onSocketError和wx.onSocketClose,并返回{errMsg:"未完成的操作"}和{code:1006,reason:"abnormal closure"},但是在真机调试时,则只会触发wx.onSocketError,并返回{errMsg:"exception onOpen fail code:20, msg:Invalid HTTP status."},在上传的体验版中,返回的是{errCode:1004,errMsg:"Open fail: _code:20, _msg:Invalid HTTP status."}
      具体机型:OnePlus 7T
      微信版本号:7.0.8和7.0.9测试版本
      系统版本号:Android 10&Hydrogen OS
      10.0.4.HD65
      代码片段:https://developers.weixin.qq.com/s/skQbX2mu7TdD
      11-21
      回复
  • -。-
    -。-
    11-25

    url传参不能带中文字符,需要encode一下

    11-25
    赞同
    回复
  • Geefib
    Geefib
    11-21

    建议用心跳来维持ws的持续连接,不要相信onSocketError和close,不同设备可能会有不同的触发情况

    11-21
    赞同
    回复 1
    • 许周潮
      许周潮
      11-22
      心跳有的,我是想实现服务端意外情况下的重连
      11-22
      回复
  • 许周潮
    许周潮
    11-20

    补充,在上传的体验版中,返回的是{errCode:1004,errMsg:"Open fail: _code:20, _msg:Invalid HTTP status."},文档里没有见到这种结构啊?

    11-20
    赞同
    回复 1
    • -。-
      -。-
      11-25
      楼主解决了吗  一模一样的问题
      11-25
      回复
问题标签