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

2023-12-04 14:18
信息记录材料 2023年10期
关键词:客户端服务器模块

赵 晟

(武汉虹信技术服务有限责任公司 湖北 武汉 430070)

0 引言

近年来,互联网技术快速发展,给人们日常生活带来不同程度的改变,从信息受众群体向参与者方向转换,对于产品用户体验感的判断,参与性成为一个重要因素。 而即时通信服务作为网络技术中最重要的技术,其具有集成丰富、信息多样化、使用简单等特征,被广泛应用在互联网行业中,受到各行业人员高度重视。 根据专业人员调查发现,在2020 年底,即时通信产品用户数量超过8 亿,且这些数据呈上升趋势。 即时通信是指利用互联网为载体,通过无线智能终端,给多人提供在线沟通平台,其作为目前最新型的通信方法,国内各平台都有研究,但仍然无法解决不同平台即时通信系统相互通信问题。 因此要注重应用可扩展通信和表示协议(extensible messaging and presence protocol,XMPP),将其应用到即时通信系统设计中,实现不同平台即时通信系统相互沟通,解决系统运行中存在的问题[1]。

1 即时通信系统概述

随着社会经济不断发展,人们对移动终端功能需求量呈现逐年递增的趋势,传统即时通信软件已不能满足用户实时聊天要求。 而基于Web 的即时通信软件节省客户端下载环节,只要启动浏览器就能实现即时通信服务模式,其具有较强的便捷性,是未来互联网技术发展的主要趋势。 目前,即时通信软件采用TCP/IP 协议进行数据传输作业,其根据TCP/IP 协议分为传输层、网络层、网络接口层、即时通信协议层等环节,如图1 所示。 其中即时通信协议层主要作用是处理即时通信细节;传送层提供了正确的逻辑沟通,使应用层次得以应用;网络接口层是用于实现与传送媒体的物理层面。 同时,即时通信系统采用了客户端服务器,该应用程序设定在不同的主机上,通过这些程序协同工作,以达到即时通信的要求;而即时通信协议必须选用正确的网络通信协议,用来规范应用程序的数据交换和处理方法。

2 即时通信系统需求分析

软件开发流程阶段中要全面分析软件实际功能,以软件交付、系统方案设计、功能测试为主要依据。 工作人员全面掌握软件需求,才能提高工作目的的准确性,这是保证软件开发顺利进行的基础。 目前,通过研究项目内容,将网站即时通信系统具体功能分为可视化配置管理、基本功能、扩展功能等环节,如图2 所示。 其中基本功能涉及在线状态、用户登录、用户账号注册、群聊天等功能;扩展功能有文件传输、广播消息等功能;可视化配置管理要管理XMPP 服务器、用户、群组等方面,科学管理服务器的安全机制、监听端口、服务域名等[2]。

图2 即时通信系统功能框架

3 基于XMPP 的即时通信系统设计

3.1 即时通信系统的整体结构

在设计即时通信系统过程中,以B/S 架构为核心,将即时通信系统分成Web 服务层、通信服务器、XMPP 客户端等环节。 该方案利用超文本传输协议(hypertext transfer protocol,HTTP)传送请求,Web 服务器为中间层,处理浏览器侧请求,减轻相关信息数据,有效地控制通信服务器工作压力。 使用者进行即时通信,网页为使用者建立即时通信客户接口,能够准确地掌握使用者网页操作,并对使用者进行详细的获取,并利用Web 服务器完成通信作业[3]。

3.2 XMPP 服务器功能模块分析

利用客户端-服务器架构的XMPP 协议即时通信系统,实时维护XMPP 服务器和其他服务器间的相互沟通,提供专业的XMPP 通信传输通道,不仅能给用户提供即时通信服务,还能加强系统的安全性,是目前即时通信系统运行中的重要环节。 目前,XMPP 服务器根据功能分为数据库模块、会话管理模块、连接器模块、监听器模块等环节。 监听器模块主要负责监听XMPP 的服务器端口,例如外部服务器连接端口、客户端等,服务器通过对文件信息进行分析,和端口进行相互连接,接收到连接指令搭建连接套接字;路由器模块作为整个XMPP 服务器中的重点,路由器模块可以对系统各方面的功能进行合理的控制,XML 数据包也是基于路由模块在XMPP 服务器组件中进行传播;连接器模块是通过搭建连接套接字,将外部XMPP 服务器和XMPP 客户端相互连接,使所有聊天用户在相同服务器上采用C2S 实现消息发送和接收操作;会话管理模块是由服务器对服务器、客户端对服务器组成,对整个XMPP 服务器性能有重要作用,能实时跟踪客户端的会话,建立Client Session 和Server Session,实现服务器和客户端间的交互行为,充分发挥会话管理模块作用[4]。

3.3 XMPP 客户端功能模块设计

即时通信服务通过使用XMPP 客户端实现,其给用户提供良好的使用接口,实现底层XMPP 协议通信作业。 目前,XMPP 客户端功能趋于多样化,如获得好友列表、查询好友信息、用户注册、用户登录、收发聊天信息等功能,且这些服务功能均要通过服务器优化。 因此工作人员要合理应用XMPP 客户端,搭建不同XMPP 服务器间的会话,将用户消息转变为XML 包,将会话传输到服务器,同步收集服务器传递的XML 包,提取XML 中有用信息,在客户端界面上呈现出来。

3.4 客户端和服务器会话分析

在客户端应用过程中,工作人员要建立TCP 连接渠道,为了收集到XMPP 服务器的IP 地址,客户端自动保存服务器列表,结合登录内容收集端口信息,在客户端和服务器中间搭建TCP 连接渠道,进行频繁XML 交流,如图3所示。

图3 建立会话流程

(1)搭建XML 流。 通过TCP 连接客户端和服务器,初始化MLX 流,等到了服务器自动返回,从而实现各种XML 流功能,如身份认证机制、传输层安全加密等。

(2)传输层安全认证。 客户端要对传输层TLS 信息进行加密,收到服务器的要求后,服务器向客户端传输安全证书,客户端自动校验安全证书,保证其满足行业要求而不存在任何伪造现象。 在连接完成后,传输通道自动优化为加密通道,要重新建立XML 流,后期所有数据均通过加密渠道进行传输[5]。

(3)压缩XML 流。 通过压缩XML 流能控制带宽资源,但值得注意的是,要保证服务器和客户端均支持压缩操作,才能开展XML 流压缩处理。 在压缩工序完成后,要建立新型XML 流,通过压缩连接实现数据传输功能。

(4)SASL 简单身份认证。 服务器在接收到客户端选择的认证方式后,使用简单的安全认证机制来识别用户的身份信息,且利用预先制定的算法进行加密处理,客户端在接收到信息数据后,要及时解密信息内容,挑战信息数量和简单认证安全层状态有直接联系。 在挑战成功后,客户端自动接收服务器成功信息,搭建全新的XML 流[6]。

4 基于XMPP 的网站即时通信系统实现

4.1 基于XMPP 协议的即时通信系统结构

图4为即时通信系统的后端基础构成。 通信服务器最常用Ejabberd,数据库以PostgreSQL 为核心通过XMPP客户端实现Exmpp 库开发作业[7-8]。

图4 即时通信系统组成

4.2 通信服务器研究

4.2.1 通信服务搭建和配置

在Ubuntu 下可以直接用装置包安装的系统需要安装后配置服务器[9-10]。 通过Ejabberd 给系统管理员提供配置文件,保障服务器管理效果达到预期要求,如图5 所示。第一,Ejabberd 可配置服务器域名、监听口、用户权限等功能模块,在修改文件后要及时重新启动服务器。 能精准设置识别偏差标准,计算出瞬时控制系数,设置瞬间相位。而瞬间相位和初始瞬时相位间有明显差异性,该差异性体现在阶矩方面,但文章采用自动识别技术进行分析,识别范围不会有明显变化,能有效控制识别作业误差值。 从目前识别瞬间相位情况来看,时常遇到如实际覆盖面积不固定、信号特征提取准确性不足等问题。 针对该种情况,工作人员要设置阶矩识别层级,与传统识别方法相比,其具有较强的灵活性和稳定性,在面对复杂的网络环境时,能提取相关特征,为后期识别操作提供丰富的数据资源。 第二,WEB 后台管理。 使用systemmanager 和code 登录网址,自动进入后台管理界面,可创建用户资源,浏览服务器运行状态资料,删除用户信息。 第三,命令行管理工具主要是开关机,实时监控Ejabberd 状态,Ejabberd 工具可以备份内部数据库和恢复数据[11]。

图5 Web 后台管理页面

4.2.2 Ejabberd 通信框架与模块

DataClass 负责资料储存业务,加强保证资料完整性,Mnesia 资料库默认采用,通过LDAP 目录存储各种模块的业务资料。 接口层除了附带流量控制功能外,还负责监控服务端口、收发数据[12-13]。 随着社会经济不断发展,我国政府部门愈发提高对低压电力线管理的重视程度,针对低压电力线运行制定各种相关政策,保证低压电力线运行安全性能达到预期标准。 要进一步拓展通信范围,研究各种动态组网算法,如蚁群算法、非交叠分簇的路由算法、逻辑拓扑结构算法等,均能实现路由的自动中继工作。 而Mnesia 资料库默认被采用,利用外部资料库或LDAP 目录存储可以配置大部分模块的业务数据。 负责Ejabberd,核心通信业务的逻辑层是Ejabberd 的重中之重,如表1所示。

表1 Ejabberd,通信模块和功能

5 结语

综上所述,本次研究主要做了以下四点:(1)学习即时通信系统实现的相关技术方法、查阅与网站即时通信系统有关的资料和文件、了解当前的最新研究状况及发展动态、对网站即时通信系统的功能需求进行调查研究、制定初步的开发计划;(2)对《XMPP 协议》的相关内容进行了重点研究;(3)学习研究OTP 行为模式开发技术;(4)从全局出发,设计网站即时通信系统的整体框架,将XMPP服务器的结构在即时通信系统中进行分析,提高系统的使用效果。

猜你喜欢
客户端服务器模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
客户端空间数据缓存策略