摘 要
随着网络通信和计算机技术的发展,人们越来越希望能够即时发送和接收互联网消息。与此同时随着互联网的发展在HTML5中提出了websocket协议,能更好的节省服务器资源和带宽并且服务器和浏览器能够双向实时通讯。为了能让用户体验传统客户端和web带来的即时通信结合的超爽体验,本次毕业设计将完成web端和客户端之间的即时通信系统,并利用在大学所学的知识打造高性能,高并发,高可拓展性服务器。同时更是为了方便人们之间的信息交流,让用户随时的接入即时通信,提升人们生活的效率。
该按照软件工程思想采用面向对象和模块化设计方法设计。其中采用了网络通信技术、数据库技术,多线程技术和信息安全技术的基础上设计并实现新型即时通信系统。该系统为用户提供点对点私聊,群聊,离线消息,消息提示于一体的即时通信平台。
关键字:即时通信;高性能;高并发;TCP/IP;Websocket
ABSTRACT
With the development of network communication and computer technology, more and more people want to be able to send and receive instant messages on the Internet. At the same time with the development of the Internet in HTML5 websocket Protocol is proposed, to better conserve server resources and bandwidth and the server and the browser is capable of two-way communication in real time. In order to make the user experience of traditional Web and client of instant messaging with super-cool experience, this design will complete instant communications between the Web server and client systems, and use the knowledge learnt at University to create a high performance, high concurrency, highly scalable server. But in order to facilitate the exchange of information between people, allowing users to access instant messaging at any time, make people's lives more efficient.
According to the software engineering design method of object-oriented and modular design. Which uses the network communications, database technology, multi-thread technology and information security technology designed and implemented on the basis of a new instant messaging system. The system provides a point-to-point private chat, group chat, offline messages, a message in one of the instant messaging platform.
Keywords: Instant Messaging; high-performance, high concurrency; TCP/IP;Websocket
目录
摘 要 III
ABSTRACT IV
第一章 引言 1
1.1 即时通信系统基本概念 1
1.2 即时通信系统的发展历程 1
1.3 系统研究目的和意义 1
1.4 系统可行性分析 2
第二章 相关技术介绍 3
2.1 TCP/UDP协议 3
2.2 WebSocket协议 3
2.3 服务器模型 4
2.3.1 同步 4
2.3.2 复制进程 4
2.3.3多线程 5
2.3.4 事件驱动 5
2.4 TLS/SSL协议 5
2.5编程语言 5
2.5.1 C++ 5
2.5.2 Nodejs 6
2.6 开源库 6
2.6.1 Boost C++ Libraries 6
2.6.2 Openssl 7
2.6.3 Protobuf 7
2.6.4 Hiredis 7
2.6.5 Socket.io 7
2.7 开发相关工具 8
2.7.1 Redis 8
2.7.2 Sqlite 8
2.7.3 Nginx 8
2.7.4 Visual Studio 2013 8
2.7.5 Visio 2013 9
第三章 即时通信系统的设计 10
3.1 即时通信系统功能描述 10
3.2服务器设计 11
3.3数据库设计 11
3.4主要的消息时序图 12
3.4.1 未读消息时序图 12
3.4.2点对点私聊时序图 13
3.4.3群聊消息时序图 14
3.5网络处理设计 15
3.5.1封包 15
3.5.2拆包 16
3.6负载均衡设计 17
3.7网络安全设计 18
第四章 即时通信系统的实现 19
4.1主要类和文件说明 19
4.2系统部分截图 23
第五章 即时通信系统的测试 26
5.1测试目的和任务 26
5.2测试流程 26
5.3 功能测试用例 27
第六章 结论和展望 28
6.1 结论 28
6.2 进一步工作的方向 28
参考文献 29
致谢 30