二、即时通信系统的原理介绍
即时通信(InstantMessenger,简称IM),它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术。典型的IM是这样工作的:当通信对象列表(buddylist)中的某人在任何时候登录上线并试图发出通信请求时,IM系统会发一个消息提醒用户,然后建立一个通信会话并键入消息文字进行交流。
即时通信的出现和互联网有着密不可分的关系,从技术上来说,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族是整个互联网得以实现的技术基础。
首先,用户A输入自己的用户名和密码登录即时通信服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(OnlinePresence)。
其次,根据用户A存储在IM服务器上的联系人列表(BuddyList),服务器将用户A在线的相关信息发送到也同时在线的即时通信联系人的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,即时通信联系人PC机上的即时通信软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。
第三步,即时通信服务器把用户A存储在服务器上的联系人列表及相关信息回送到他的PC机,这些信息也包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的PC机上的IM客户端收到后将显示这些联系人列表及其在线状态。
接下来,如果用户A需要与用户B进行通信,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时消息就不通过IM服务器中转,而是通过网络进行点对点的直接通信,这称为对等通信方式(PeerToPeer)。在商用即时通信系统中,如果用户A与用户B的点对点通信由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器还提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。早期的IM系统,在IM客户端和IM服务器之间通信采用采用UDP协议,UDP协议是不可靠的传输协议,而在IM客户端之间的直接通信中,采用具备可靠传输能力的TCP协议。随着用户需求和技术环境的发展,目前主流的即时通信系统倾向于在即时通信客户端之间、即时通信客户端和即时通信服务器之间都采用TCP协议。
三、即时通信系统的实现方案
1、系统整体架构设计方案概述

图1 系统整体架构
| |