【GT-Android应用开发之消息处理】

本文介绍了一款基于GoIM二次开发的简易聊天应用,涵盖了消息推送、消息类型处理、消息分发等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    前段时间由于公司业务需要,开发了一个聊天应用。由于本应用后期会迁移到其他一些项目中,当做一个功能模块存在,因此并不需要实现一些复杂的功能、消息类型等。通过几次小型的会议,与其他几个项目组的人员及领导沟通最终确定了该应用的基本功能,主要如下:

    1、消息类型包括简单的文字消息、表情消息、系统消息以及图片消息(拍照上传与图库选择)

    2、后台基于开源项目GoIM进行二次开发

    3、消息通过推送的方式,即用户A调用接口通知服务器要给B发消息,服务器将消息推送给用户B

    4、群聊,类似于群推送,以列表的形式保存群用户并依次推送消息

    5、好友列表,与后台服务器交互获取好友即群列表组成新的列表并渲染

    6、会话列表

    7、对话界面,主要实现消息的发送、展现以及删除

    虽然该项目看似功能不多,但是其逻辑是比较复杂的,今天在这里对于消息的处理进行分享:

    知识点一:推送方式

    客户端与服务端采用Socket实现长连接,并利用心跳接口避免长时间不交互而导致Socket关闭,建立连接后服务器通过Socket向客户端推送消息,用户发送消息则是通过Http请求通知服务器要给其他用户发送消息,请求数据包括接收方的id、时间以及消息等内容,服务器解析后进行消息的推送

    知识点二:消息类型

    前面已经提到过,本应用支持的消息类型有简单的文字消息、表情消息、系统消息以及图片消息,接下来将对这四种类型的消息处理进行一个粗略的介绍。

    1、文字消息,该消息类型是最基本的消息,不需要对格式进行特殊的处理

    2、表情消息,其实与很多IM应用一样,本应用的表情其实也是一串特殊格式的文字消息,只不过在界面上展示的时候,会进行解析,获取相应的图片进行展示

    3、系统消息,参照QQ它的系统消息其实就可以当做一个特殊的用户发送的消息

    4、图片消息,与表情消息类似,它也是按照一定的格式拼接而成的字符串,只不过最终解析出来的会是一个url

    知识点三:消息分发

    本次应用开发采用Activity+Service+Breacast的方式实现消息分发机制,在主Activity启动的时候启动一个Service并开启子线程接收后台消息,接收消息后通过广播进行发送,注册广播监听的Activity便可接到广播并进行相应的操作

    最后,由于项目是公司在用的,就不附带源码了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值