
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
1.已完成的功能列表
•Diffie-Hellman密钥交换、用AES加密所有的传输内容
•自制二进制序列化与反序列化库以装/拆数据包
•类QQ的联系人列表、新消息置顶、红点提示
•用户注册登入加好友/创群加群
•实时更新在线状态(联系人列表+群聊用户列表)
•单聊、群聊中均支持字体设置、发送图片
•SQLite3存储所有数据
•用tk做的GUI
很多其他的小的功能
2.本地运行展示
3.自制聊天协议说明
聊天协议受到HTTP协议启发
1.无状态(除了登入操作之外)。
2.Request Body和Response Body使用键值对的方式,键为string,值可以为任意类型。
1.登入时设置socket状态,后续传输不必再次说明身份。
2.每个包头加入Request/Response Type,每个Type对应一种固定的操作,对应固定的参数列表。
3.使用二进制而非类JSON方式传输,节省流量。
这种设计的优点
1.简单易懂,易于测试(因为无状态)。
2.灵活方便,无需为不同的操作类型写不同的处理程序。
3.可以传输非常复杂的数据结构(如:登入时的所有N条未读消息(每条都含有发件人/时间/消息内容/甚至图片二进制)都是放在一个包里的)。
这种设计的缺点
1.每个字段要指定一个key(如:user,pwd),每个value的类型要有一个byte指定,略浪费流量。
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!