首页 理论教育 即时通信系统的模式与设计

即时通信系统的模式与设计

时间:2022-02-12 理论教育 版权反馈
【摘要】:即时通信系统有两种模式:一个是客户机/服务器模式,即通信双方的用户必须通过服务器来交流;另一个是客户机/客户机模式,即服务器给通信双方建立一个TCP通道,他们之间的交流在这个通道之上进行,而无须通过服务器就能从一个用户端传到另一个用户端。此外,即时通信系统要实现接近实时的信息传输,必须随时知道信息的主机是否在线,所以还要有一个模块专门负责记录用户的在线状态。

即时通信系统有两种模式:一个是客户机/服务器(Client/Server)模式,即通信双方的用户必须通过服务器来交流;另一个是客户机/客户机(Client/Client)模式,即服务器给通信双方建立一个TCP通道,他们之间的交流在这个通道之上进行,而无须通过服务器就能从一个用户端传到另一个用户端。在系统(孙书梅,2006年)中,使用的是客户/服务器的模式,任何用户可以向服务器申请与另一个用户建立直接联系通道,一旦连接成功,双方就可以进行文件、视频等信息的数据传输等操作。

在网络架构设计方面,每个用户都有自己的账号和密码,这也是用户登录服务器的唯一途径。系统服务器由若干个功能模块组成,它们分别实现系统所要求的一些基本功能,包括用户的身份和权限认证、用户好友名单管理等。此外,即时通信系统要实现接近实时的信息传输,必须随时知道信息的主机是否在线,所以还要有一个模块专门负责记录用户的在线状态。

8.3.1 处理用户登录

登录验证主要是对试图登录的客户端进行权限验证。服务器获得客户端发送来的用户名和密码,然后查询数据库的用户基本数据表,在表中查找是否存在该用户,如果该用户不存在或用户名与密码不匹配,服务器将验证失败的结果发回给客户端,拒绝其登录请求。如果验证通过,服务器会将数据库中的用户状态改为在线,并把用户的好友信息提供给用户。服务器处理登录验证服务的流程如图8-1所示。

定义协议格式为11/用户的ID/密码/本地PI地址,协议头erecstr.Letf(2)赋值为11。

图8-1 处理用户登录验证流程图

8.3.2 处理用户呼叫好友

用户如果想跟好友进行通信,必须跟对方建立连接,首先得呼叫好友。呼叫时好友可能处于各种不同的状态,如不在线、隐身或正在通话中等,服务器会根据好友不同的状态做出不同的处理。服务器处理用户添加好友的流程如图8-2所示。

定义协议格式为75/用户的ID/好友ID,协议头recestr.Left(2)赋值为75。

图8-2 处理用户呼叫好友流程图

8.3.3 处理用户下线

用户下线时,服务器将其状态修改为初始状态,并通知用户的在线好友该用户下线。服务器处理用户下线的流程如图8-3所示。

定义协议格式为61/自己的ID,协议头recestr.Left(2)赋值为61。

图8-3 处理用户下线

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈