APP下载

基于XMPP协议的即时通信系统设计和实现

2023-01-07王延军孙欣欣

信息记录材料 2022年11期
关键词:服务器端好友客户端

王延军,孙欣欣

(中国电子科技集团公司第五十四研究所 河北 石家庄 050000)

0 引言

随着智能设备的持续发展,移动终端被广泛应用到人们生活中。即时通信是指能够对互联网消息即时接收和发送的业务,其功能使人们的通信方式有所改变。国内外各平台也有所研究,但不同平台即时通信系统无法解决互联互通问题。所以,对即时通信系统的设计研究尤为重要[1]。

1 系统的体系结构设计

系统体系结构的构成为:其一是服务器。对发送连接和其他实体会话进行管理,转发或者接收XML 流元素到授权服务器和客户端中;其二是协议网关。实现XMPP 协议传输信息和外部消息系统对信息翻译的识别;其三是客户终端。连接服务器,利用XMPP 得到服务器或者任何服务的全部功能。XMPP 网络能够连接各个客户端、服务器,图1为客户端连接架构。

图1 客户端连接架构

通过Android 设计客户端,对通信过程进行初始化,在实现即时通信的过程中,通过客户端对服务器发送创建连接请求。系统利用GPRS 无线网络创建连接,利用服务器和Android 客户端实现即时通信。

服务器端使用Openfire 作为服务器,能够使多个客户端同时登录并且发送到连接服务器中。服务器能够实现客户端连接认证,如果客户端认证通过,就会创建会话,通过此会话上下文实现客户端和服务器端的通信[2]。

1.1 服务器端

使用Java 语言实现Openfire 的开发,基于XMPP 协议实现实时协作服务器的设计,主要特点为跨平台,服务器能够在多种操作系统平台中假设。Openfire 使用XMPP协议,利用各种支持XMPP 协议的IM 客户端软件登录服务。Openfire 服务器的主要特点是通过连接管理组件、会话、管理更新组件等构成,能够实现插件机制,使扩展更加的方便,利用安装插件和其他通信软件进行通讯。在连接网络的过程中,使用Apache 中的MINA 框架进行连接,MINA框架使用高性能、非阻塞性的I/O 底层,使用异步I/O 事件与事件驱动机制,提高服务器的性能和效率,对大量客户端进行处理[3]。

1.2 客户端结构

将Android 平台作为基础设计系统客户端,将XMPP作为即时通信协议,XMPP 是将XML 为基础,对两个任意网络终端进行信息通信。使用Android 平台中的XML 解析包解析XML,因为应用活动在主线程中运行,所以使用多线程技术使系统通信问题得到解决。对于通信安全网问题,系统聊天信息和用户信息通过客户端在Android中存储,图片文件和多媒体文件在Android 虚拟文件存储设备中存储[4]。

1.3 XMPP 协议

XMPP 属于基于标准通用标记语言的子集XML 协议,具有较强的可扩展性。此协议主要包括客户端和服务器,利用计算机网络应用层协议进行工作。XMPP 服务器与客户端利用socket 方式进行通信,实现稳定TCP 连接的创建。通过JID 地址标识符实现不同节点通信的网络寻址,满足设定标准需求,主要包括节点名、域名、资源名。另外,不同客户端和服务器能够通过XML 流实现消息的传递。

2 系统的设计

2.1 客户端设计

通过XMPP 协议实现可靠通信的连接,利用服务器端实现数据组织的管理和消息路由的转发。在此方式使用过程中,能够在添加功能时对服务器修改实现。客户端在设计过程中的原则为实现人机交互,向下封装能够通信接口进行处理,客户端功能模块包括:

2.1.1 注册模块

注册模块能够验证用户登录信息,针对客户端,登录功能能够将创建连接请求发送到服务器端,将用户名与密码作为验证信息。通过服务器查询数据库中用户列表,对用户名与密码进行验证。假如匹配失败,说明验证没有通过。注册功能为新用户提供通信服务入口,根据用户密码和ID 登录,注册模块结构详见图2。

图2 注册模块结构

2.1.2 好友管理模块

通过好友管理模块得出联系人名册并且删除、添加和创建群组,得到联系人名册和用户在线状态与好友列表。通过用户添加好友或者删除,基于对方用户名提出请求,等待应答。通过客户端实现群组聊天,根据用户的不同需求实现不同群组的创建,还能够实现群组的信息交互。

2.1.3 消息处理模块

消息处理模块针对客户端能够接收文本信息、发送。在不同用户之间,文本信息能够利用XML 流传递,消息处理模块能够转变XML 消息和文本消息。用户对好友列表的联系人发送消息,如果对方在线发送成功;如果不在线,利用服务器对信息存储。一个用户能够对多个联系人通信,通过客户端对多线程技术提供支持[5]。

2.1.4 文件传输模块

在已经注册的用户成功登录之后,能够对联系人发送文件传输请求,此请求通过服务器在客户端中转发,客户端接收请求之后回应。假如对方同意,就能够传输文件;要不然就终止文件传输。如果一种方法失败了,就会自动选择另外一个方法:

第一,点对点方法。客户端在对文件进行传输的过程中,要创建P2P 连接。两个用户在同个网络中P2P 连接比较快。但是,在一个用户通过防火墙后,利用P2P 方式传输文件的时候就会失败。

第二,代理服务器方式。假如P2P 连接失败,客户端就会寻找一个代理服务器传输文件。虽然代理服务器方式在文件传输的过程中传输速度比较慢,但是有效。代理服务器方式有效,除非某用户在严格防火墙后,代理服务能够作为服务器外部组件进行使用。

第三,带内文件传输。假如上述传输方法失败,客户端就使文件分割成为数据块,作为编码信息利用IM 服务器实现带内传输。不管网络配置怎样,此方法能够传输文件,但是传输速度比较慢。

2.2 TCPClient 的创建

系统中的服务器端利用ServerSocket 类监听客户端发送Socket 连接请求,要不然就处于等待的状态;如果有,进行后续操作。通过Socket accept()函数全面监听网络中客户端的连接请求。

在结束Socket 通信后,通过close()函数关闭终端Socket 通信。服务器能够监听客户端的连接请求,如果存在多客户端连接请求时,要全部处理,通过PC 实现服务器端的实验程序运行[6]。

2.3 安全加密

因为大部分即时通信系统是公开的,所以要求重视即时通信市场的安全性。大部分IM 系统在设计过程中都会对可扩展性进行考虑,但并没有考虑安全问题。主要是大部分免费在线即时信息系统都缺乏加密功能,具备传统企业防火墙功能,提高网络管理难度。

另外,系统中密码管理并不安全,导致账户受到攻击,还能够受到拒绝服务攻击。以此要求假如知道一个用户即时通讯地址,就能够直接将信息发送给对方,导致企业员工、政府工作人员可能对外界泄露数据。其实IM 自身特点会导致IM 系统迅速传输混合病毒和计算机蠕虫。例如,IM 应用比较广泛,为病毒传播提供了环境。IM 集成能够对新目标目录进行查找,满足病毒集群传播需求。IM 能够被简单易变脚本进行控制,大部分IM 系统能够编写脚本,使用户编写VB 系统,对不同方式信息代理进行控制。在为用户提供方便时,还为混合病毒与蠕虫传播提供途径。

企业内部即时通信是高质量统一通信综合战略中重要的一部分。在系统设计过程中要充分考虑交流、传输的安全加密方法。目前简单可行的方法就是实现传输信息的加密传输,使信息流通控制和管理得到加强,本文系统使用BlowFish 算法实现加密。BlowFish 算法能够对64 Bit 长度字符串进行加密。BlowFish 算法包络BF_En 核心算法,此算法输入64 位信息。在预算之后,根据64 位密文方式进行输出。算法加密过程为:

第一,密钥预处理;

第二,信息加密:

使用sbox 对key_sbox 进行填充;

用自己所选择的key8 亦或pbpx,key 能够循环使用;

使用BF_En 加密全0 的64 位信息;

替换key_sbox。

信息加密就是使用函数将待加密信息x 分为32 位的两部分,密钥预处理过程和加密相同,信息解密过程就是使信息加密过程中的key_sbox 进行使用。

3 系统的测试和评价

系统平台创建Openfire 服务器端,客户端APP 创建Android 操作系统收集,测试异构软件为Spark 软件。

3.1 即时聊天功能

即时聊天功能的测试指的是用户在手机客户端的即时聊天功能,客户端用户聊天发送请求得到服务器端正确响应,并且能够在对方手机中即时发送,此系统功能根据需求准确实现,图3为聊天功能界面,功能实现代码为:

图3 聊天功能界面

3.2 好友通讯录功能

通过此模块能够调用好友数据,展示用户好友列表,管理用户好友。比如,对好友进行查询和添加,系统利用服务器精准调用数据,展示在好友界面中[7],实现代码详见:

3.3 地图定位功能

通过此模块对用户定位进行发送,利用百度地图实现免费地图的发送,在请求发送后自动生成地图定位界面,得出精度和维度。根据测试结果表示,系统将用户坐标定位精准地展现出来。

4 结语

综上所述,在本文设计过程中,将XMPP 协议作为基础实现通信系统客户端的设计。XMPP 能够基于开源网络实时通信协议具有较高的灵活性。和XMPP 技术结合将其作为消息传输的载体,使客户端功能得到实现。另外,还能够和其他即时通信软件连接。根据XMPP 网关转变协议,实现跨应用、跨平台的信息传输。

猜你喜欢

服务器端好友客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
属羊
删除好友
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
新华社推出新版客户端 打造移动互联新闻旗舰