HarmonyOS 鸿蒙Next 使用TLSSocket 注册事件,怎么没有响应?

HarmonyOS 鸿蒙Next 使用TLSSocket 注册事件,怎么没有响应?

代码如下,我建联成功了,并且也成功给服务端发送了消息。但是注册的几个事件,一个事件的回调都没有调用,请问是否有问题?

let tls = socket.constructTLSSocketInstance();

tls.on('message', async (value: SocketInfo) => {
  LogUtils.i(">>>收到消息!on message", LOG_TAG);
});
tls.on('connect', async () => {
  LogUtils.i(">>> 监听connect事件 收到响应 connect", LOG_TAG);
});
tls.on('close', () => {
  LogUtils.i(">>> 监听close事件 收到响应  close", LOG_TAG);
});
tls.on('error', () => {
  LogUtils.i(">>> 监听error事件 收到响应  error", LOG_TAG);
});
tls.connect(tlsOneWayConnectOptions).then(async () => {
  LogUtils.i(">>>第二步,连接成功 connect succeed !", LOG_TAG);

  let auth = this.getPacket();

  this.sendMessage(tls, auth)

}).catch((e: Error) => {
 
})

更多关于HarmonyOS 鸿蒙Next 使用TLSSocket 注册事件,怎么没有响应?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

代码是否不全?从这些代码看,应该是没有连接并发送成功。

一般来说,需要下面的步骤:

  1. 建立tls套接字
  2. 绑定本地地址
  3. 设置ca证书
  4. 连接服务端
  5. 发送消息

服务器给回复后,你才可以通过on(“message”)回调拿到服务器回复。

更多关于HarmonyOS 鸿蒙Next 使用TLSSocket 注册事件,怎么没有响应?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


启动,开始连接-------》 connectTls2

收到消息!on message

收到消息!data:

监听connect事件 收到响应 connect

监听close事件 收到响应 close

监听error事件 收到响应 error

第一步,绑定本地端口 bind -------》 {“address”:“0.0.0.0”,“port”:9990}

本地端口绑定成功 bind success

第二步,发起连接 connect -------》 {“address”:“0.0.0.0”,“port”:9990}

第二步,连接成功 connect succeed !

异步获取远程地址

异步获取远程地址 成功{“address”:"",“family”:“IPv4”,“port”:0}

异步获取协议类型

异步获取协议类型 成功 data:

获取当前链接状态 2

获取当前链接状态 2 成功:{“authorized”:false,“authorizationError”:null,“encrypted”:false,“local”:{“address”:“0.0.0.0”,“family”:“IPv4”,“port”:9990},“peer”:{“address”:"",“family”:“IPv4”,“port”:0},“servername”:"",“version”:""}

发送消息

等待2秒

发送消息

第三步,延迟30s后,关闭连接 取消事件订阅

第三步,30s时间到,执行关闭连接 取消事件订阅

第三步,关闭连接成功

第三步,取消事件订阅完毕

大佬,这个是我全部代码。测试代码,放在一个方法里,外面调用的。和这个关系应该不大吧,

主要其他的事件比如conect之类的也没有打印出来。服务端可以确认是有收到消息的,在服务端同学那里能看到日志。他也回了,但是我本地on message没有收到。

针对“HarmonyOS 鸿蒙Next 使用TLSSocket 注册事件,怎么没有响应?”的问题,以下是一些可能的原因及检查方向:

  1. 事件注册是否正确

    • 确认在创建TLSSocket后,事件注册的方法是否正确调用,并且事件类型(如连接、数据接收等)是否匹配预期。
  2. 事件处理逻辑

    • 检查事件处理函数是否存在逻辑错误,例如死循环、异常抛出未捕获等,这些都可能导致事件处理无响应。
  3. 网络状态

    • 确认设备的网络连接状态,确保TLSSocket能够成功建立连接。
  4. 证书验证

    • 对于TLSSocket,证书验证是一个重要环节。检查服务器证书是否有效,以及客户端是否配置了正确的信任根证书。
  5. 资源占用

    • 检查系统资源(如CPU、内存)是否充足,资源不足也可能导致事件处理无响应。
  6. 系统日志

    • 查看系统日志,是否有关于TLSSocket或网络相关的错误信息,这些信息可以提供进一步的线索。

如果上述检查后问题依旧存在,可能是系统或框架层面的bug。此时,建议直接联系鸿蒙系统的官方技术支持团队进行深入分析。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部