uniapp vue3 微信小程序 项目中使用 websocet、微信小程序真机调试 websocket 报错 errMsg: “Invalid HTTP status.“

文章讨论了在uniapp和vue3构建的微信小程序项目中使用websocket遇到的问题,包括必须使用wss(HTTPS)协议以符合真机调试的安全要求,以及在真机调试时需配置HTTPS服务器地址和在小程序开发设置中勾选特定选项来避免连接错误。解决方案包括使用wss前缀的WebSocket地址和反向代理服务器。
摘要由CSDN通过智能技术生成

uniapp vue3 微信小程序 项目中使用 websocet

const websocketParams = ref({
  accessToken: 'token'
})

const websoketFn = () => {
  uni.connectSocket({
    url: `wss://www.xxx.com:1688/coord/messenger/websocket/site`, //演示接口
    success: (res) => {
      console.log("正准备建立websocket中...", res)
    },
  })
  uni.onSocketOpen(function (res) {

    socketOpen.value = true
    sendSocketMessage()
    console.log('WebSocket连接已打开!', res)
  })
  uni.onSocketError(function (res) {
    console.log('WebSocket连接打开失败,请检查!', res)
  })

  // 建立连接后发送数据
  function sendSocketMessage() {
  //需要在确定建立连接后才能发送数据
    if (socketOpen.value)
      uni.sendSocketMessage({
        data: JSON.stringify(websocketParams.value)
      })
  }

  uni.onSocketMessage(function (res) {
    console.log('收到服务器内容:', res)
    getMessageNumber()
  })
}

微信小程序真机调试 websocket 报错 errMsg: “Invalid HTTP status.”

  • 这个错误通常是因为小程序 WebSocket 请求的地址没有配置为 HTTPS,而是使用了 HTTP,因此需要注意以下几点:
    • 小程序开发者工具可以支持使用 ws:// 前缀的 WebSocket 地址,但在真机上会因为不安全的原因而无法使用。因此,需要使用 wss:// 前缀的 WebSocket 地址来进行真机调试。
    • 在真机调试时,需要将服务器地址配置为 HTTPS 地址,否则会出现连接失败并报错 Invalid HTTP status.。需要注意的是,如果服务器本身不支持 HTTPS,则需要使用自己搭建的反向代理服务器来进行请求转发。
    • 另外,需要在小程序的开发设置里勾选“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”这个选项。这个选项只在开发和测试阶段使用,正式发布时需要将其取消勾选。
    • 综上所述,要在微信小程序真机调试中使用 WebSocket,需要将地址配置为 wss:// 前缀的 HTTPS WebSocket 地址,并且需要选择“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证”选项进行发和测试。
    • wss://www.xxx.com:1688/coord/messenger/websocket/site 使用前缀 wss

bye)🤡

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值