avim

AVIM 项目

#概述:

avim 是一个完全全新设计的IM协议,同时也是一个同名的C++实现 目标是提供一个开源的IM实现,并且能实现文字聊天,图片聊天,语音聊天,视频聊天 avim开源代码:

https://github.com/avplayer/avim

#1 模块介绍

client端

server端: server进行消息转发 活动状态信息记录到 db 里 聊天内容记录到 log 里

#2 协议设计

协议分 2 层:

2.1 地址层: 对上层就是提供一个 地址。这层负责把数据传递的到目的地。

2.2 IM层: 实际的负载数据

协议详细介绍:

https://www.avboost.com/t/avim-av/582/3

https://www.avboost.com/t/av/584

2.3 协议API

bool av_config(std::string clientprivatekey);

bool av_route(int op, std::string addr, std::string gateway);

bool av_query_status();

bool av_sendto(std::string addr, std::string msg);

bool av_recvfrom(std::string addr, std::string msg);

#3 主要开发者:

Dr Jack Mic dpainter hyq 张小凡 海盗 匠人(f_x_p) 一人一爱 peter

#4 avim代码提交流程

  • AVIM代码仓库branch功能划分 三类branch develop: 不稳定分支,主要用于代码贡献者进行提交,或者非稳定贡献者提供的patch也首先合并到此branch。 面向developer和代码管理者。 master: 不稳定分支, 负责从develop分支合并提交过来, 需先进行测试 - 面向代码管理员 release: 稳定分支 ,例如release-v1.0, 发布分支, 负责将master某一时间点的所有提交提取出来形成release - 代码管理员维护

  • 代码开发流程
  1. 开发者Fix bug或者开发了新功能后, push提交给develop分支, 通知代码管理者合并至master
  2. 代码管理者拿到patch后,在本地合并并编译firmware验证,若测试通过, 合并至master,并通知developer,若有bug产生,通知developer修改, 重新走流程
  3. 代码管理者定期(如一月)将master代码合并至release分支,编译firmware给测试人员测试, 测试通过发布新版本
  • 问题说明 Q: 若开发周期较长,而此时develop分支有新的改动进来? A: 若开发新功能需要较长时间, 请新开一个branch如 dev-new-feature, 并且在开发过程中,每天与develop分支同步。这样当新的功能开发完毕后,和直接请代码管理者 merge你的分支即可, 但本身与develop分支的同步工作需要developer来做。

#5 人员分配

加密类任务(hyq)

  1. 公钥咨询协议 : proto 里有大致描述 – 待定
  2. 公钥缓存 – hyq
  3. 只能卡设备支持
  4. 签发证书: - peter
  • 任务描述: 为 avrouter 和 simple_im 里的那个 2个 测试用的 key 签发一下证书。 然后把证书也做成一个 C字符串,写到源码里。作为其他client端的参考示例

接口类任务

  1. 封装c接口
  2. 封装python接口
  3. 封装java接口

代码管理任务

  • 各个平台代码正确性 : todo 确定各个平台志愿者, 做持续集成脚本(Travis-CI)
  • Windows: 一人一爱

client端开发(GUI)

  • Win: (一人一爱 dpainter)
  • Ios: (Mic 西门吹牛)
  • Linux:
  • Android :

网站建设(张小凡 海盗?)

1 AVIM-CA网站建设

#6 参考文档

  1. How to create a self-signed SSL Certificate

编译avim

使用前请参考 编译avim