目录

TLSSocket中on('close')和on('error')事件的触发条件

问题现象

TLSSocket中,on('close')和on('error')分别用于订阅关闭和error事件,二者的触发条件分别有哪些?

背景知识

TLSSocket是一种基于TLS/SSL协议的安全网络通信套接字,用于在客户端与服务器之间建立加密的数据传输通道,确保数据的机密性和完整性。

解决方案

常见FAQ

Q:可以使用哪种方式处理TLSSocket的重连?

A:通过监听TLSSocket对象的方式处理重连。可以在on('error')事件的回调中处理error,不同网络原因导致的error,业务侧会收到不同的错误反馈,然后根据错误原因进行处理。

Q:在监听同一个TLSSocket对象时,通过on('error')监听应用后台运行返回前台后或息屏几秒再开屏后,会触发两次错误码为2303505的错误回调,可能是什么原因?

A:错误码2303505为TLS系统调用错误,由于网络问题而导致通信失败。根据日志进行排查,原因是发送一次TLSSocket请求,会收到两次错误响应,即第一次是通过已建立的加密连接接收服务器发送的数据时所收到的错误通知,第二次是通过已建立的加密连接发送数据时所收到的错误通知。

Q:通过socket.TCPSocket的connect连接指定ip和port,API返回错误码2301004。

A:设备和手机要连接在同一个网段。

Q:频繁触发Socket发送数据,提示2301004错误,error回调返回error.code=4。

A:发送频率比较高需要使用多线程,而TaskPool和Worker的作用就是为应用程序提供一个多线程的运行环境。也可以通过合并数据,降低发送频率。

Q:TLSSocket在应用进入后台后多久后会断连?

A:应用进入后台两秒就会断连。

Q:2in1 PC对于网络的事件监控可以使用Linux的iptables机制吗?可以直接转发或者读取网卡流量吗?

A:iptables是Linux系统内置的包过滤防火墙工具;HarmonyOS支持的设置防火墙规则,参考:使用网络防火墙。