推荐一个开源的IM软件BirdTalk

1. 简介

这是一款开源的即时通信软件的安卓版本客户端。

安卓代码仓库: https://github.com/robinfoxnan/BirdTalkClientAndroid

服务端代码仓库: https://github.com/robinfoxnan/BirdTalkServer

DEMO App内部使用了组件BirdTalk SDK;

SDK集成了聊天的基础功能,App集成SDK实现相关功能。

目前的功能与特点如下:

  • SDK内置聊天界面,简洁易上手;

  • SDK封装聊天相关功能,方便二次开发;

  • SDK与后端使用websocket加密通信;

  • SDK使用DF密钥交换认证,免登录;

  • SDK支持文本、图片、语音、附件形式消息;

  • 支持私聊和群聊;

  • 群聊支持多种加入方式;

  • 后端服务为单程序,部署容易;

  • 后端设计支持多终端登录;

  • 后端使用scyllaDb、mongoDb、Redis存储数据,方便扩展;

2. 编译apk

使用android studio 2024版本。

其中,需要在源码中设置服务器地址:

打开WebSocketClient.kt

复制代码
    private var serverPath: String = "wss://192.168.1.2:7817/ws?"
    private var fileServerPath: String = "https://192.168.1.2:7817"

两个参数,第一个是web socket的连接地址,第二个是文件下载的地址前缀,这里的地址和端口都是一样,为了将来扩展使用了2个参数;

3. 功能说明

3.1 注册与登录

1)匿名注册:填写一个用户名,设置密码,后台服务会分配一个唯一数字作为账号,

注册完成后自动登录。

2)手动登录:如果之前有账号,可以填写账号数字和密码登录;

3)邮箱注册:填写一个邮箱地址,等待验证码,填写验证码后点注册,后台服务会分配一个唯一数字作为账号,

注册完成后自动登录。

3.2 搜索好友

在底部点"好友",顶部点"搜索",左侧按钮是搜人,右侧按钮是搜群;

用户双向关注,也就是"互关"就算好友,可以互相发消息;

1)使用账号精确查找;

2)使用关键字模糊搜索;

3.3 关注与粉丝

粉丝和关注列表中默认动态更新;

3.4 私聊

在"互关"界面,点"发消息"可以进入发送消息界面;

1)消息支持文本、图片、语音和附件;

2)消息如果是:

  • 时钟则是发送中;
  • 惊叹号则是失败;
  • 一个√就是提交服务器;
  • 2个√就是送到对方了;
  • 绿色的√就是对方阅读了消息;

3.5 群聊

1)在会话列表中,右侧的"加号"可以添加一个群;

2)进入群后,在顶部右侧"..."进入群相关的设置;

3)目前支持基础功能:群成员拉人进群,以及管理员踢人;

4)其中群的个别功能未实现:转让群主,人员操作记录,申请加入群以及通过问题进去群;

会话列表 群设置菜单

4. 后续

1)完成群相关其他功能;

2)服务端支持集群扩展;

相关推荐
来自于狂人6 小时前
GitHub 开源趋势日报 | 2026年10月21日
开源·github
冬奇Lab8 小时前
开源项目第244期:高性价比人生指南 —— 767 条建议,每条写明成本、收益、证据等级和原始出处
开源·资讯
Imagination官方博客11 小时前
从开源驱动到完整软件栈:Imagination 助力 RISC-V 图形生态发展
开源·risc-v
袋鼠云数栈11 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
程序员老赵12 小时前
Docker 部署 Hue:轻松搭建数据库与数据仓库 SQL 查询平台
sql·docker·开源
樊小肆12 小时前
睡前丢给它三张工单,早上收代码和账单:我开源了一个 DeepSeek 驱动的 AI 编码助手
开源·ai编程·deepseek
SelectDB技术团队13 小时前
Snowflake 的开源替代怎么选:能力对照、三条部署路径与迁移执行
大数据·数据库·云原生·开源·snowflake·apache doris
wflynn14 小时前
GitHub 日榜趋势速报 | 2026-10-21
开源·github
葫三生15 小时前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源
钱栈up15 小时前
GitHub热榜上手|Claude插件:4.3万星官方目录
python·开源·github