HarmonyOS 鸿蒙Next @kit.NetworkKit webSocket 连接后立即close问题

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next @kit.NetworkKit webSocket 连接后立即close问题

使用

import { webSocket } from ‘[@kit](/user/kit).NetworkKit’;

的webSocket 连接服务器, connect及open都有返回消息, 但是open之后 200ms左右, 就收到服务器关闭消息 on close :close code is:1000,close reason is:The link is down , 其中这个close code is:1000 是CloseResult中的错误码, 表示的含义是"正常关闭". 为什么会主动关闭连接呢?

12-18 17:29:37.891 15427 15427 I A00000/WebSocketDemo: connect, headerHost = 219.147.31.58:9321,

12-18 17:29:37.892 15427 15427 I A00000/SocketManager: SocketManager onLocalConnect code:1000

12-18 17:29:37.897 15427 15427 I A00000/WebSocketDemo: receive from server:message is:"{\n\t"msgType":\t"WsOpToClient",\n\t"sig":\t"connectack",\n\t"ts":\t"1734514139932",\n\t"uid":\t"9999666621",\n\t"code":\t"000000"\n}"

12-18 17:29:37.897 15427 15427 I A00000/SocketManager: loginStatus sig:connectack

12-18 17:29:37.903 15427 15427 I A00000/WebSocketDemo: connect success, isConnect = true

12-18 17:29:37.903 15427 15427 I A00000/SocketManager: onSocketConnect success

12-18 17:29:38.257 15427 15427 I A00000/WebSocketDemo: on open status{“status”:101,“message”:“Switching Protocols”}

12-18 17:29:38.257 15427 15427 I A00000/SocketManager: onSocketOpen{“status”:101,“message”:“Switching Protocols”}

12-18 17:29:38.257 15427 15427 I A00000/WebSocketDemo: receive from server:message is:"{\n\t"msgType":\t"WsOpToClient",\n\t"sig":\t"connectack",\n\t"ts":\t"1734514140251",\n\t"uid":\t"9999666621",\n\t"code":\t"000000"\n}"

12-18 17:29:38.257 15427 15427 I A00000/SocketManager: handleDataMsg"{\n\t"msgType":\t"WsOpToClient",\n\t"sig":\t"connectack",\n\t"ts":\t"1734514140251",\n\t"uid":\t"9999666621",\n\t"code":\t"000000"\n}"

12-18 17:29:38.257 15427 15427 I A00000/SocketManager: loginStatus sig:connectack

12-18 17:29:38.257 15427 15427 I A00000/WebSocketDemo: on close :close code is:1000,close reason is:The link is down


更多关于HarmonyOS 鸿蒙Next @kit.NetworkKit webSocket 连接后立即close问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

你是不是退出后台了?

为了合理使用网络资源,无长时任务的应用退到后台主动断开连接, 应用如果不主动断开连接,系统会强制断开连接,应用在前台后需要主动重新创建连接 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/reasonable-network-use-V5

更多关于HarmonyOS 鸿蒙Next @kit.NetworkKit webSocket 连接后立即close问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是一些Header信息缺失或者不对导致的,流程是从Java转换过来的,有些header信息的存放不符合要求,修改添加了protocol等信息,就可以了

解决了就好,为楼主点赞,欢迎大佬来我们社区分享技术,帮助他人解决问题

针对HarmonyOS鸿蒙Next中的@kit.NetworkKit WebSocket连接后立即close的问题,可能的原因及解决方案如下:

  1. 服务器配置:检查服务器端WebSocket配置,确保支持客户端的连接请求,并检查是否有IP白名单、端口限制等策略导致连接被立即关闭。

  2. 连接参数:核对WebSocket连接的URL、协议版本(如ws或wss)、端口号等参数是否正确,确保与服务器端设置一致。

  3. 认证信息:如果WebSocket连接需要认证,确保认证信息(如Token、Cookie等)在连接请求中正确传递。

  4. 心跳机制:检查是否因为心跳包配置不当导致连接被服务器视为不活跃而关闭。调整心跳包发送间隔和超时时间可能有助于解决问题。

  5. 客户端日志:开启详细的客户端日志记录,分析WebSocket连接过程中的详细信息和错误提示,以便精确定位问题。

  6. 网络问题:检查网络连接稳定性,确保客户端与服务器之间的网络通信畅通无阻。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。客服人员将为您提供进一步的帮助和支持。

回到顶部