收藏
回答

连接socket,Invalid HTTP status,安卓和苹果都报错

问题类型 API/组件名称 微信版本 基础库版本
Bug SocketTask.onError,wx.connectSocket(Object object) 8.0.64 3.16.0

复现步骤:

1 .域名要带端口号,如我的域名:https://www.meixx.com:8011/hub/order?id=xxx&access_token=6XHrHzljhiMYTQp 这种形式的地址。

2.代码如下,我是用uniapp写的,这里给出的是uniapp的代码

      const wsUrl = `https://www.meixx.com:8011/hub/order?id=xxx&access_token=6XHrHzljhiMYTQp`;

      this.socketTask = uni.connectSocket({

        url: wsUrl,

        header: {

          Origin: "https://www.xxxns.com"

        },

        success: (res) => {

          this.logger.log(LogLevel.Debug, res)

        },

        fail: (err) => {

          this.logger.log(LogLevel.Error, err)

        }

      })


      this.socketTask.onOpen(data => {

        // 发送协议协商消息

        this.logger.log(LogLevel.Debug, '发送协议协商消息')

        this.socketTask.send({

          data: `{"protocol":"json", "version":1}${String.fromCharCode(0x1e)}`,

          success: (res) => {

            this.logger.log(LogLevel.Debug, '发送协议协商消息成功')

          },

          fail: (err) => {

            this.logger.log(LogLevel.Error, '发送协议协商消息失败')

            this.logger.log(LogLevel.Error, err)

          }

        })


      })


      this.socketTask.onClose(data => {

        this.logger.log(LogLevel.Debug, '链接关闭')

      })


      this.socketTask.onMessage(res => {

        this.logger.log(LogLevel.Information, '收到消息')

      })


      this.socketTask.onError(obj => {

        this.logger.log(LogLevel.Error, '链接错误')

      })

    } catch (err) {

      this.logger.log(LogLevel.Error, err)

    }


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

3 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    05-14

    服务器域名怎么配置的

    05-14
    有用
    回复 1
    • haven
      haven
      05-14
      带端口和不带端口的都配置了
      05-14
      回复
  • haven
    haven
    05-14

    如果不带端口就是正常的,带上端口就是会报错。

    05-14
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    05-14
    有用
    回复 3
登录 后发表内容