目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 选题背景及意义 1
1.2 国内外研究现状 1
1.3 研究主要内容 3
第2章 相关技术介绍 4
2.1 TCP/UDP协议 4
2.2 WebSocket协议 4
2.3 服务器模型 5
2.3.1 同步 5
2.3.2 复制进程 6
2.3.3多线程 6
2.3.4 事件驱动 6
2.4 TLS/SSL协议 6
2.5编程语言 7
2.5.1 C++ 7
2.5.2 Nodejs 8
2.6 开源库 8
2.6.1 Boost C++ Libraries 8
2.6.2 Openssl 8
2.6.3 Protobuf 9
2.6.4 Hiredis 9
2.6.5 Socket.io 9
2.7 开发相关工具 9
2.7.1 Redis 9
2.7.2 Sqlite 10
2.7.3 Nginx 10
2.7.4 Visual Studio 2013 10
2.7.5 Visio 2013 11
第3章 即时通信系统设计 12
3.1 即时通信系统功能描述 12
3.2服务器设计 13
3.3数据库设计 14
3.4主要的消息时序图 15
3.4.1 未读消息时序图 15
3.4.2点对点私聊时序图 16
3.4.3群聊消息时序图 18
3.5网络处理设计 19
3.5.1封包 19
3.5.2拆包 20
3.6负载均衡设计 22
3.7网络安全设计 22
第4章 即时通信系统实现 24
4.1主要类和文件说明 24
4.2系统部分截图 29
第5章 即时通信系统测试 34
5.1测试目的和任务 34
5.2测试流程 35
5.3 功能测试用例 35
第6章 结论和展望 40
6.1 结论 40
6.2 进一步工作的方向 40
参考文献 41
致谢 43
1.4 研究主要内容
该即时通信系统是有两部分组成,服务器端可以通过启动来监听客户端信息的传递与执行各种对客户端的监控,客户端则是通过人性化与美观的界面来使用户可以易上手和舒适的体验快速与简便的通信。应用从这两部分分别进行了详细的功能设计,服务器端功能主要为启动对于客户端的监听与关闭监听,还有对于已注册用户的实时监控与管理,客户端功能主要为使用者该软件账号的申请与进入操作界面,还有自己资料的修改以及对于其他账号好友的添加与管理等等。
第3章 即时通信系统设计
3.1即时通信系统功能描述
随着web的发展,在HTML5标准中提出了Websocket SSL协议。它实现了浏览器与服务器全双工通信(full-duplex)。为用户提供能够通过客户端和web端接入的即时通信平台,让用户体验传统客户端和HTML5标准结合带来的超爽体验,方便人们之间的信息交流,创建新型沟通文化,提升人们生活的效率。
该系统具有私聊,群聊,消息通知、离线消息存储,上下线通知等基本功能,同时保证数据通信的即时性以及通信过程和消息存储的安全性。

图3.1 用户用例图
3.2系统总体设计
TCP服务器和客户端采用C++编写,通过TCP协议与服务器连接并由SSL安全传输层保证安全,实现即时通信。浏览器端通过HTML5中提出的Websocket协议与服务器连接,Websocket服务器和HTTP服务器采用Nodejs编写。不同物理服务器,不同语言服务器采用统一的数据传输格式来传输,本文转载自http://www.biyezuopin.vip/onews.asp?id=11898借助redis数据库的Pub/Sub模式和消息队列,来进行服务器之间的信息通信。对数据库进行Master/Salve备份。
<%= title %>
<%= title %>
Welcome to <%= title %>


















