项目作者: shniu

项目描述 :
构建issue看板工作流,将issue看板应用于个人学习及未来发展规划中,总结并实践敏捷和精益思想,从实践中思考scrum和看板,更好的让自己的学习更加顺畅和快速,实现双赢
高级语言: Jupyter Notebook
项目地址: git://github.com/shniu/ai-cells.git
创建时间: 2017-08-15T08:07:11Z
项目社区:https://github.com/shniu/ai-cells

开源协议:MIT License

下载


Flash Instant Message

分布式的即时通信基础服务。

IM 的核心能力放在 core 中,client 负责客户端的逻辑,server 负责服务端的逻辑

基础的抽象模型:客户端向服务端发起连接,建立一个 channel,成功之后 channel 可以通信
需要有异步编程的支持

协议设计

  1. 通信协议:消息头+消息 payload

魔数 | 版本号 | 命令类型 | 消息序列号 | 数据 payload 长度 | 数据 payload

魔数:2 bytes, 0x1014
版本号:2 bytes
命令类型:1 bytes, e.g. login, chat, ping
消息序列号: 4 bytes
payload 长度: 4 bytes
payload: 变长字节数组

  1. 传输方式:二进制传输,把数据表编码成二进制数据,以流的方式发送出去,接收端收取到数据后解码成想要的对象