如何开发一个支持跨PC、手机端互通的纯血鸿蒙版聊天Demo?

摘要:鸿蒙原生(HarmonyOS)开发现在的势头非常猛,鸿蒙原生应用也是大势所趋。现在我们来实现一个纯血鸿蒙版的聊天Demo,这个Demo可以与我之前实现的聊天Demo的Windows端、安卓端、iOS端、Linux端互通信息的。
鸿蒙原生(HarmonyOS)开发现在的势头非常猛,鸿蒙原生应用也是大势所趋。现在我们来实现一个纯血鸿蒙版的聊天Demo,这个Demo可以与我之前实现的聊天Demo的Windows端、安卓端、iOS端、Linux端互通信息的。   一. 开发环境 开发工具:DevEco Studio 5.1 开发语言:ArkTS 测试手机:华为 Mate 70 二. Demo 实现的功能   本文ESFramework的鸿蒙版Demo演示了以下功能: (1)客户端用户上下线时,通知其他在线用户。 (2)当客户端与服务端网络断开时,进行自动重连,当网络恢复后,重连成功。 (3)所有在线用户之间可以进行文字聊天。 (4)文件传送。 (5)消息同步调用。 (6)重登陆模式。当同名的用户登陆时,会把前面的用户挤掉。   这里有该Demo运行的效果演示视频。   文末有该Demo鸿蒙端实现的源码,下载源码后,对照着这篇文章看,会更容易理解。    三. Harmony鸿蒙客户端实现说明   源码解压后,在DevEco Studio中打开Demo项目,其结构如下所示: 1. 文件目录结构    2.定义信息类型 在本demo中,我们定义5个信息类型,分别表示文字聊天消息(直接发送给对方),文字聊天消息(由服务端转发),图片消息、撤回消息,以及客户端同步调用服务端。其定义如下: enum InformationTypes{ /// 文字(表情)聊天信息 TextChat = 0, /// 文字(表情)聊天信息 (由服务端转发给消息接收方) TextChat4Transit = 1, /// 图片聊天信息 ImageChat = 2, /// 收到消息发送者 撤回消息请求 RecallMsg = 3, /// 客户端异步调用服务端  ClientSyncCallServer = 4, } 3.实现自定义信息处理器 客户端的utils里的customizeHandler实现了ICustomizeHandler接口,其主要实现HandleInformation方法,来处理收到的聊天信息。 handleInformation(sourceUserID: string, informationType: number, info: number[]): void{ ...... } 4.index.ets 登录页   登录页的样式如图所示:       输入ip、账号、密码后,点击登录,输入的数据会用于初始化RapidPassiveEngine以登录。
阅读全文