HarmonyOS 通过TCPSocket进行连接时,如何准确的判断是否与服务器已断开连接?

​使用TCPSocket的getState获取到的连接状态不准确,无法判断服务器主动断开连接的情况。

TCPSocket建立连接之后,在没有任何数据交互的情况下待机长时间,使用getState获取到的isConnected为true,并且使用send发送数据没有触发error,但是实际上服务器已断开和客户端的连接,没有给响应了。​

HarmonyOS
2024-11-14 09:13:26
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

通过订阅回调事件可以获取,尝试使用error事件处理。

可参考以下链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-socket-V5#onerror-1

参考demo如下:

import socket from "@ohos.net.socket"; 
import { BusinessError } from '@ohos.base'; 
let tcp: socket.TCPSocket = socket.constructTCPSocketInstance(); 
tcp.on('error', (err: BusinessError) => { 
  console.log("on error, err:" + JSON.stringify(err)) 
});

​使用场景是绑定和连接时,可参考以下链接,有说明:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-socket-V5#getstate-2

已于2024-11-14 16:57:36修改
分享
微博
QQ
微信
回复
2024-11-14 16:57:29
相关问题
VScode终端ssh连接不到Linux服务器问题
28134浏览 • 2回复 待解决
HarmonyOS websocket连接后自动断开
25浏览 • 1回复 待解决
ets TCPSocket连接无法发送消息?
3977浏览 • 1回复 待解决
HarmonyOS BLE 搜索、连接断开等问题
598浏览 • 1回复 待解决
怎样判断当前设备是否连接了VPN?
696浏览 • 1回复 待解决
HarmonyOS SE服务连接
9浏览 • 1回复 待解决