基于Web前端开发的即时通信文件传输

2019-08-23 02:44蒋玲玲
电子技术与软件工程 2019年14期
关键词:消息客户端服务器

文/蒋玲玲

随着近些年IM即时通信技术的迅猛发展,使得市场中也出现了移动飞信、腾讯微信以及QQ等一系列即时通信客户端,该信息连接模式有助于即时向用户提供文件传输服务,并且实现及时收发信息等功能。即时通信内容包括采用XMPP协议实现数据交互目标,而且该协议以TCP为基础实现XML数据流的传输,有助于为数据安全性提供保障。该研究提出基于Web前端开发的即时通信方案,实现了通信文件的即时传输。

1 方案设计

1.1 架构设计

1.1.1 WebRTC服务器

该服务器用于和客户端创建Web连接,同时在该连接过程中实现ROAP消息的传输,以展开客户端间的连接,WebRTC服务器通常和客户端相连接,并且负责转发客户端的信令消息。

1.1.2 中央服务器

这一服务器的功能主要是管控WebRTC服务器,在服务器启动或者关闭状态下,均会将注销、注册信息发送给中央服务器。中央服务器在系统运行期间会选择心跳机制向注册WebRTC定时发送请求,以明确WebRTC的运行状态。

1.1.3 环信服务器

这一服务器的角色为XMPP服务器,与客户端相结合实现双线数据的连接,有效维护客户端的用户会话,而且用户也可通过系统对即时消息进行发送,这样客户端就会出现XML数据,进而向环信服务器即时发送相关数据。

1.2 消息格式设计

首先设计ROAP协议消息格式。该协议大多在协商搭建媒体通道中应用,通过Offer/Answer模式实现客户端信息的交互,此为SIP协议简化版本,同时为消息自定义扩展提供重要支持。该文件传输方案主要通过ROAP协议对浏览器间数据通道进行创建。ROAP消息格式内部的type字段主要在ROAP协议消息标识中应用,包括接受会话的Answer消息、发送会话请求的Offer消息等。其次设计文件传输消息格式。在系统客户端间通过ROAP协议对双向数据通道进行创建,由此就能够以该通道为基础实现点对点数据传输。因为互联网传输期间会限制数据传输容量,传输文件过程中需要分块所发送文件,再与接收端实现重组,为提升文件传输高效性与稳定性,该方案设计传输文件过程中的消息格式,主要在传输文件内容、描述文件消息和请求文件重传中应用。在消息编码结构方面,即时消息首位大小是一个字节,主要表示各消息类型,定自定义不同消息类型后的字段内容。在字段方面,前两个字节表示字段长度,后面的字节则主要用作装载数据。

2 关键流程设计

从根本上说,设计关键流程其实就是Web前端开发模式下的即时消息方案中进行关键流程的设计,主要包括通过环信服务器当作XMPP服务器,以设计即时消息通信流程,通过WebRTC技术创建客户端数据传输通道,首先设计以Web前端开发为基础的即时消息方案流程,其次选择WebRTC技术于用户客户端间创建双向数据传输通道,再次在客户端创建双向通道之后,并在该通道中实现文件数据的传输。

系统性分析与探讨即时消息通信流程设计,从而为客户端充分发挥即时消息通信功能提供重要保障,通常会将Socket创建在客户端、环信服务器两者间,通过环信服务器实现转发XMPP即时消息的目的。此外,为满足Web前端开发文件传输功能,信令服务器、系统客户端往往会进行WebSocket双工通道的创建,并且连接传输ROAP协议,其主要功能在于实现媒体协商、私网穿越,进而对客户端数据传输通道进行全面创建。除此之外,客户端间可以以该数据传输通道为基础进行文件数据的直接传输,文件数据的传输主要选择文件传输消息格式,能够实现文件的重组,使重新传输文件功能得以实现。

图1:创建连接性能测试图

图2:数据传输性能测试图

3 方案实现

该研究以Web前端开发为基础的即时消息通信方案选择环信即时通讯服务器当作该研究中的XMPP服务器,同时在客户端构建与解析XMPP协议消息格式,依照该研究中的即时消息通信方案,使系统群聊功能得以实现。

即时消息存储方案的提出,重点在于存储即时消息,同时提出采用HTML5内部的localStorage有效存储用户联系人,其中包括群组列表与好友列表,方案还提出,通过非关系型数据库对即时消息内容进行存储,localStorage内部存储的Key值代表即时消息发送、收发两大主体的名称,即时消息收发时间为value值。Key值于数据库内部存储指的是即时消息收发时间,value值指的是即时消息的内容对象,包括消息收发时间、发送方和接收方、消息类型等。除此之外,方案中标明,IndexedDB中可以为消息类型、消息收发时间等添加索引,从而使数据库消息记录查询效率得到有效增加。

该方案使即时消息存储方案系统得以实现,可以将离线、在线消息等实现记录管理后提供给客户端用户,而用户通过该系统能够即时查询近期联系人,依照时间顺序对联系人、通信记录等进行查看,并且根据方案中的消息存储功能,使即时消息记录功能得以实现。Web前端开发模式下的文件传输中,能够使客户端文件传输功能得以实现,同时能够为传输多文件或者单文件提供支撑,依照该研究的即时消息通信方案传输效果,系统可依照文件接收情况将文件传输速度显示在系统页面中。

4 文件传输方案测试

该研究方案中所提出的Web前端开发模式下的文件传输方案,使客户端间数据直连传输通道得以实现,客户端可以利用互联网方式进行文件数据的直接传输,不需要通过服务器对信息进行转发,在很大程度上提升了文件或者信息数据传输效率。实现该方案的即时消息系统中,对文件传输性能进行全面测试,以互联网平稳运行的基础上,因为系统用户比较多,IMB客户端间创建数据双向通道连接,测试结果如图1所示。

在性能测试方面,因为系统用户量相对来说比较多,可以在客户端之间 进行数据传输通道的创建,这样就有助于通道连接时间的延长,增加用户量过程中,会使信令服务器负载得到相应增加,由此就会延长连接创建的时间。客户端数据传输通道创建后,该通道传输数据测试结果如图2所示,从图2可以看出,该文件传输方案,有助于提升Web下的文件传输效率,为系统传输性能提供重要保障。

5 总结

该研究对Web前端开发模式下的即时消息浏览器存储、即时通信和文件传输方案设计进行分析与探讨,并且提出以环信即时通信服务器为XMPP服务器,从而使即时消息通信方案得以实现,数据库中实现即时消息的存储。通过测试结果显示,该方案有助于提升Web前端开发模式下的即时文件传输可靠性与传输效率。

猜你喜欢
消息客户端服务器
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
消息
消息
消息