- TCP/UDP 通讯,一般是使用这两种方式,还需要有消息的重发机制,心跳机制,TCP的重连机制等
- 数据加密,即会话的内容的传输保密,可以使用RSA+AES
- 消息存储,sqlite数据库 or 加密数据库
- UI,聊天页面的UI基本都比较复杂,RV的使用,图文混排,表情,超链识别,应用号等非常多类型的消息和事件
- 保活机制,IM一般都需要保活,
- 跨进程,可能会需要跨进程来实现
- 兼容,新消息旧版本的展示,数据库兼容与扩充等
- 回执机制,1是消息的发送成功与否,2是已读维度的回执,3是回话的未读数计算机制,回话的更新机制,消息撤回机制等等。
IM的开发还会涉及到很多的西街店:比如at人机制,比如群组头像,比如点击会话列表之后的自动滚动机制等等。
使用了上面的技术点,才能较好的完成一个基本具备即时聊天功能的App,更复杂的,比如飞书,企业微信,钉钉等,会在基本都IM功能上加上非常功能。
在IM即时通许开发过程中,我们会直接使用TCP/UDP去做一个开发,我之前接触的一个是使用TCP的方式,在这个过程中,为了避免被人拦截了之后对数据进行查找与篡改,需要进行加密。