即时通讯程序,腾讯QQ可以说是一家独大,虽然市场上仍然有类似QQ的即时通讯程序,但是基本上面向的对象都是特定人群。那么,现在做一个即时通讯的软件还有意义吗?在我看来,意义非常大。作为一个学习编程的人,整天和电脑、互联网打交道,而互联网最大的作用就是信息传递,如果能够做出自己的即时通讯软件,不仅能够增加编程技术经验,更能深深体会互联网信息传递的奥妙。
接下来几天,我将会分多个文章来做这个项目,有兴趣的小伙伴可以按照文章中的步骤一起做。做这个项目你需要会这些技术:
1.winform
2.SQL Server
今天这篇文章,我们就先来进行项目分析。
在进行分析之前呢我们要先讲一下即时通讯软件的原理。
即时通讯,即用户A给用户B通过网络发送消息,用户B通过网络接收到消息。如果不考虑互联网的诸多限制,那么每个用户只需要一个客户端在手中就行了,用户与用户之间就是单线联系,但是呢因为公网IP资源有限,我们客户端设备手机、电脑等一般都不是直接连接的互联网,而是连接的运营商划分的局域网当中, 而两台不同局域网的设备一般是不能穿透中间的互联网直接访问的,所以呢,问题就出在这里,既然都可以访问互联网,那么在互联网上加一个中间商,消息呢就都先发送给这个中间商,由它来帮忙转发一下消息,这样就能实现A和B之间的通信了。
那么这个中间商就是即时通讯软件的服务端。
功能分析
根据用户操作步骤,我们可以将软件划分如下几种功能:
一、客户端
1.用户注册:基本资料的填写,由系统随机生成账号id
2.用户登录
3.用户资料初始化:
初始化用户资料,比如头像、昵称、个性签名、好友等
初始化好友列表:获取好友在线状态
初始化验证消息
4.查找并发送添加好友请求
5.同意好友验证
6.好友间互发消息:历史记录保存在本地
二、服务端
1.消息转发:即时通讯系统的核心功能
2.日志记录:记录所有用户的上线、下线操作;
暂时就先定下这些功能,后面做的时候如果有想不到的再补充,下一篇文章就是进行数据库的分析与设计了。
本文系小博客网站原创,转载请注明文章链接地址