HarmonyOS 鸿蒙Next 使用WebSocket建立connect后收到err 200

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用WebSocket建立connect后收到err 200

ws.connect响应成功  但会在ws.on(‘error’, (err) => 中收到{“code”:200},,,,只有code没有具体错误信息

20 回复
这个问题解决了吗

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-websocket-V5#websocketrequestoptions  

将protocol字段设置为 Sec-WebSocket-Protocol 的值可以正常连接,不返回error 200。

比如 服务器要求的字段 Sec-WebSocket-Protocol : soup 如下设置

    this.ws.connect(url, {
      protocol: "soup"
    }, (err: BusinessError, value: boolean) => {
      if (!err) {
        Logger.d(TAG, "Connected successfully")
      } else {
        Logger.d(TAG, "Connection failed. Err:" + JSON.stringify(err))
      }
    })
  }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

cke_320.png

加上还是不行,是啥原因,怎么排查

我也遇到这个问题了,请问解决了吗?

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

我这边没有子协议的说法,就是普通的wss请求,也没有配置“Sec-Websocket-Protocol”,有人知道答案吗

请问你的问题解决了吗,我这边也遇到一样的问题,找了好久都没找到解决方法

需要服务端下掉对websocket子协议校验。但是不知道是当前版本还是什么原因,websocket总会出现连接异常,重启不可恢复,一般我都断网重连有可能解决,稳定性很差。

好的,谢谢你!

这边排查发现是不支持某个子协议导致哦,屏蔽掉就正常了,你那出现这个问题,时那个子协议不支持

什么协议不支持。怎么个屏蔽呢?貌似我手机更新前都能用,更新了一次之后websocket就一直报200错误码了了

Sec-Websocket-Protocol

能问下具体怎么屏蔽这个Sec-Websocket-Protocol吗,服务端根本没有设置这个字段。

好早之前有个类似的问题,这里返回200说明已经正常连接上了

这边排查发现是不支持某个子协议导致哦,屏蔽掉就正常了

补充下在真机上运行能收到error的订阅回调,,但在模拟器上connect成功后就没有其它后续了

兄弟,你弄好没?我现在也遇到这个问题了

这个最好后端联调下,看他们到底有没有收到你的socket连接请求

你好,请问你现在解决了吗

在HarmonyOS(鸿蒙)开发中,遇到WebSocket连接后返回错误码200通常是不寻常的,因为HTTP 200状态码表示请求成功,而WebSocket连接错误通常伴随不同的错误码(如4xx或5xx)。这可能意味着WebSocket握手过程中HTTP响应被错误地解释为成功,但实际上WebSocket连接并未成功建立。

检查以下几点:

  1. 确保WebSocket服务器正确配置并支持WebSocket协议。
  2. 验证客户端的WebSocket URL和端口号是否正确。
  3. 查看服务器日志,了解是否有关于WebSocket连接的详细错误信息。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部