首页 > 文章中心 > 即时通信功能

即时通信功能

即时通信功能

即时通信功能范文第1篇

关键词:即时通信;企业级即时通信;体系结构

1 企业级即时通信系统概述

即时通信工具自1998年面世以来,以实时交互、资费低廉等优点,受到了广大个人用户的喜爱,成为网络生活中不可或缺的一部分。尤其是近几年来,随着互联网的飞速发展,为适应越来越强烈的企业沟通需求,ICQ、MSN、Yahoo Messenger、RTX等即时通信软件不断出现并被广泛应用于企业即时通信之中。借助于这些即时通信工具的运用,企业的生产效率得到大幅度提升,业务协同性以及反馈的敏感度和快捷度都得到大幅度提高。这些针对企业用户的企业级即时通信系统,其易于管理的特性和相对严肃的风格更能适合于企业信息化的要求,这不仅为企业架起了实时沟通的桥梁,也有力推动了企业迈入实时信息化的进程,提升了企业的核心竞争力。

对企业来说,即时消息、语音、视频通信和即时文件传输的利用率非常高。企业级即时通信系统作为未来的主流办公工具,集成了多种先进的信息沟通方式。它是一种比邮件更快捷、更具亲和力和交互性的沟通方式,相比手机,具有可记录性、费用低、数据形式的多样性特点,支持文本、语音、图画、视频。特别是它能与电子邮件、手机(电话)以及其它企业应用办公程序结合使用,成功打造现代办公的新平台。

2 企业级即时通信系统的特点

(1)即时性。与企业内部其他通信手段相比,EIM的即时性时相当突出的,它的速度非常快,不管接收方的计算机在做什么事情,发送的消息都能即时弹出来,并可以把接收方的是否已阅读的信息反馈回来,实现消息的跟踪功能。

(2)高效性。EIM的消息发送不仅可以用于企业内部员工之间,还能用于客户支持,瞬间就能把消息传给成百上千的用户,让交易者、中介商和客户之间的通信更加顺畅,从而使消息的发送更加灵活和高效。

(3)多样性。随着即时通信技术的不断完善,应用范围的不断扩展,EIM的功能正在逐渐增强,如声音、视频的传输等;各项性能也在不断提升,特别在安全性、健壮性等方面,这就使即时通信产品具备了为企业提供多种高质量、高可靠性服务的能力。

(4)延伸性。例如,EIM可以通过无线接入设备实现无线即时通信,它允许使用者通过无线上网的方式直接访问公司的数据库甚至召集网上会议;某些具有翻译功能,可以实现多种语言的互译等。

3 企业级即时通信系统的技术体系结构

对于企业级即时通信系统的技术体系可以从以下三个方面进行详细的分析。

3.1 企业级即时通信系统的总体结构

企业级即时通信系统的主要功能,包括企业内部实时信息交互、语音视频交流、企业短信中心、自动存档主题讨论等等。企业级即时通信系统具有很高的实用性、易用性和可管理性。整体上来说,企业级即时通信系统一个开放的体系结构,一个平台化、组件化的可扩展平台。企业级即时通信系统总体结构如下图所示。

从图中可以看出,企业级即时通信系统内部存在多组服务器,最重要的有两组服务器:组群服务器和企业数据库服务器,其中有多个小的服务器,包括认证服务器,多组文件服务器,多组会话服务器;群组服务器通过TCP连接与用户的客户端相连,主要用于文件传输等功能,企业数据库通过UDP连接,用于保存各项数据,与EIM的各项功能实现数据上的支持与服务;通过应用服务器,可以实现EIM的各项功能,包括企业内部信息的交流与企业外部客户信息的交流。EIM发生所有的数据交换和信息交流,都要在数据库服务器中做好保存备份,这也是企业级即时通信系统最基本的安全保障。

3.2 企业级即时通信系统的网络结构

企业级即时通信的网络结构可以通过下图来描述:

如上图所示,企业内部有自己的EIM服务器,数据库服务器,企业内部用户可以在企业内部局域网来使用企业级即时通信系统。通过交换机,防火墙,路由器,可以和外网相连接,这样即能满足移动用户的需要,也能让企业客户在外部使用,也使企业级即时通信系统使用更广泛。

3.3 企业级即时通信系统数据库及支撑平台

EIM的数据库及支撑平台分系统主要是为其余各分系统提供一个性能良好、使用可靠、开放的和易于扩充的支撑环境;通过提高网络、数据库系统的行能,满足企业级即时通信分布式处理的要求;实现企业级即时通信系统即时消息交流、文件传输与多媒体网络会议等功能;为企业的决策,经营提供服务。

为了保证服务器具有良好的稳定性和可扩展性,EIM的服务器采用分布式、模块化的技术,扩展功能采用插件体系进行扩充。由于EIM不仅是和企业内部员工的需要,还要和外部客户联系,满足企业员工移动的需要,所有即使是企业内部用户,也要保证不同地域的用户处理的是相同的信息,即保证数据的一致性和完整性及同步性。同时还要保护企业内部敏感数据的安全性,保证系统的功能易用与统一,维护简单。根据企业级即时通信的这些特性,采用C/S和B/S并用的混合应用模式是最为合适的。

4 企业级即时通信系统应用的关键因素

目前,现在有很多企业都应用了企业级即时通信系统。即时通信的概念已经越来越受到企业的认可,在不久的将来,即时通信系统就将成为实用性的商务工具。但是要真正能运用好这个工具还需要很多方面的努力。企业级即时通信系统的实施能否为企业带来效益,最终能否成功,也存在着一些关键因素。企业级即时通信系统在技术与应用上必须解决以下的5个问题,才能是一个真正成功的企业级即时通信系统:

4.1 企业级即时通信系统能否提供端到端的加密信息传递

即时消息的传递是企业级即时通信最基本的要求,由于企业有自己的商业秘密,有很高的安全需求,使用公共性质的即时通信系统公开传递消息是不可接受的。所以,部署企业级即时通信系统时,要格外关注即时通信系统能否实现端到端的加密信息传递。同时,企业级即时通信系统要具备良好的可管理性,才会唤起企业的使用热情。

4.2 企业级即时通信系统能否记录所有的通信信息

企业级即时通信系统除了安全性的要求之外,决定企业是否应用即时通信系统的一条关键因素就是该系统是否具有强大的记录和审计功能。企业级即时通信系统应能够记录所有的通信信息,并能按其档案管理政策所要求的那样存档,具备搜索和审查功能。这些信息对约束员工行为,提供商务决策的依据都是最有效的。需要说明的是,对于即时通信系统所传递的电子信息是否具有法律效用,在法律界还存在着争议。对于企业记录所有人的通信信息的做法是否适当合理也还没有明确的法律规定。

4.3 企业级即时通信系统是否提供优质的多媒体会议室

多媒体会议室已经成为企业内部网中一个新的组成部分,也是企业级即时通信系统的一个关键组成部分。多媒体会议室是分享企业集体智慧的场所,也是各种问题能够得到即时解答的场所。支持创建功能强大、内容丰富的多媒体会议室,不仅扩大了即时通信交流的人数,而且能够把所有的通信内容记录下来,这样,即使在员工不在线的情况下,也可通过翻看记录寻找所需信息。群组通信、记录一切、知识管理,这就是即时通信系统支持创建多媒体会议室的意义。

4.4 企业级即时通信系统能否与企业现有通讯体系整合

将企业级即时通信系统无间地整合到企业现有的通讯体系和信息系统中,可以让即时通信系统的功能发挥到最大,能给使用者带来更多的方便。如集成电子邮件的功能让用户收发电子邮件更加方便快捷;按企业组织结构分层级搜索特定人员的功能,能够像使用内部网那样通过即时通信系统查找相关人员,使该系统超越单纯的交流职能,使其功能更广泛,更适应企业的内部的商务流程。

4.5 企业级即时通信系统是否能够拦截垃圾信息或免受病毒的侵害

企业级即时通信的深入应用必然带来垃圾消息骚扰和病毒侵害。所以,在系统的设计上要能有效的拦截垃圾消息;同时添加管理员,有效的检测病毒,防御攻击,为系统的正常运行保驾护航。

参考文献

[1]杨天路主编.P2P网络技术原理与系统开发案例[M].北京:人民邮电出版社.2007.

[2]刘寿强,温子梅.企业即时通信系统(EIM)安全性初探[J].实用技术.2004,(8).

[3]熊小敏,刘瑛,陈惠清.基于Java的网络即时通讯系统的设计与实现[J].计算机与现代化. 2005,(12).

即时通信功能范文第2篇

1 即时通讯系统的客户端和服务端功能分析

企业智能即时通讯是企业内部员工信息交流的主要工具,在即时通讯系统中,员工之间可以实现一对一、一对多、多对多的通讯,其不需要连接Internet,只需要企业内部网络连接就可以实现网络通信。对于即时通讯系统的主要功能,主要包括用户登录验证、添加与删除好友功能、文本信息与文件的发送与接受功能等,其都是在客户端实现的,为了使即时通讯系统更简便,其实现了智能的功能提示,而即时通讯的服务端主要是负责接受授权的客户端连接,即通过线程,从而对客户端的信息进行处理。企业智能即时通讯主要以JAVA语言的双通道通信机制开发出来的,其可以有效解决通信拥堵的现象,只要登录企业内部网络,就可以实现网络通讯。对于客户端主要功能,主要包括常规界面操作、登录功能、客户信息显示功能、聊天功能、聊天记录、信息显示功能等,而用户的常规界面操作可以为用户提供便利,同时也可以防止系统的破坏,用户打开即时通讯系统,首先显示一个登陆界面框,登陆界面具有登陆显示错误或成功的功能,同时也提供用户信息注册界面入口,而服务端主要功能包括:向各个客户端系统信息、聊天信息、申请信息、用户下线、接受各个客户端信息等功能,另外,服务器端可以对客户端所传来的数据进行检查,避免因病毒入侵而破坏整个系统,使服务器安全运行。

2 企业智能即时通讯系统的总体设计分析

企业智能即时通讯系统主要包括客户端、应用服务器层、数据库服务器等三层结构,如图1所示,图中很好的体现了即时通讯的三层结构,对于客户端,其主要为用户提供相关的界面操作,根据服务器端所返回的数据,实现通讯验证的正确显示;对于系统的应用服务器层,通过对客户端的请求作出响应,并采用线程的方式进行客户端数据库的连接和操作,从而将处理的信息反馈给客户端;对于系统的数据库服务器,其主要是进行相关数据的存放。即时通讯系统有两类工作方式,包括客户和服务器方式、浏览器和服务器方式,一般情况下,客户和服务器方式应用最多,其工作原理是客户方发出的动作通过Socket通道去接受服务方作出响应的结果,但是,这种方式需要用户安装相应的客户端软件,而浏览器和服务器的工作原理是发送方通过Web浏览器的驱动去引发Web服务器作出相应的结果,这就要求Web服务器一直处于接受监听状态下,但是这种方式不能实现直接通讯,为了实现Web浏览器和Web服务器间的通信,可以通过Web服务器上的JAVA应用程序进行转接,这样就可以实现智能即时通讯系统。

对于客户端、应用服务器层、服务器端等三层结构,第一,用户可以任意选择即时通讯系统的两种方式,若用户选择客服端和服务器端的方式,则需要安装客户端软件,而服务器方需要负责监听用户所发出的访问申请,并且采用线程的方式进行信息处理,最终将处理的信息返回给用户;第二,客户端和服务器端方式是JAVA实现的基本方法,其主要是实现对象间的互访,但是,浏览器和服务器方式是最简单的方法,方便用户之间的相互交流,其是直接由Web浏览器完成信息通讯功能;第三,服务器端实现了信息的控制,由于服务器端有一个专门的线程控制系统,这样就可以进行客户信息的接受控制,并将信息返回给客户。

3 企业智能即时通讯系统的关键技术分析

以JAVA语言的套接字通讯机制实现的企业智能即时通讯系统,通讯技术包括数据库访问、数据通信处理、消息设计等,对于数据库访问,其主要通过JAVA语言中的JDBC来实现的,其是一种为数据库提供统一访问的技术,数据库访问可以采用JDBC-ODBC桥的方式进行数据库的连接,从而实现系统的数据库访问功能。对于数据通信处理,为了实现智能化的通讯系统,采用JAVA语言的双通道通信机制,即在服务器端分别设立两个不同型号的Socket端口,并且通讯系统的所有客户端需要与服务器端设立的两个Socket相互连接,从而实现数据通信处理。对于消息设计,消息设计是整个即时通讯系统的主要工作,不仅服务器端需要担任消息处理工作,而且客户端也要担任消息处理的工作,对于协作方式的消息处理,服务器端和客户端可以明确分工,即客户端进行消息的处理,而服务器端经处理的信息转发给用户。

4 结束语

通讯系统是人们日常生活交流的软件,为了使企业投资效益最大化,开发企业智能即时通讯系统,从而方便企业内部之间的信息交流和资源共享,进而提高企业的工作效率。

参考文献

[1]林建兵,邹金安. 基于应用层的企业智能即时通讯系统的JAVA实现[J]. 西华大学学报(自然科学版),2009,03:52-55.

[2]高山. 基于融合通讯的移动社交平台的设计与实现[D].浙江大学,2013.

[3]高立江. 即时通讯系统的设计与实现[D].电子科技大学,2012.

[4]张春节. 基于SaaS平台的通用即时通讯系统的研究与实现[D].北京邮电大学,2013.

即时通信功能范文第3篇

[关键词]Android平台,XMPP 通信协议,Openfire服务器,即时通信系统

中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2016)02-0179-03

引言

21世纪,即时通信系统作为一种新兴的技术获得了突飞猛进的发展。即时通信(IM,Instant Messaging)是一种基于现代计算机网络通信技术的能够即时发送和接收互联网消息的交互方式。用户可以通过 Android 平台支撑的即时通信系统软件实现不同手机用户之间以及手机与电脑网络之间的视频、音频和文字等各种信息的即时交互通讯,以及移动终端之间点对点的信息交流与各种数据交换。

这些IM 系统丰富了我们的生活,给普通用户之间的低费用通讯带来了极大方便,但同时带来了新的技术和保密问题。XMPP 协议是开源协议,具有超强的扩展性和灵活性,也有成本低、研究和实现方便等优势,因而,对 XMPP 协议在该领域的研究有利于降低移动平台IM 实现的难度,为有类似需求的中小型企业提供一个低成本的解决方案。为此,本文中采用XMPP协议实现移动平台系统,以满足产品自身的需要。

1 系统开发关键技术分析

1. Android平台架构分析

Android一词的本义指“机器人”,是一个移动设备的软件平台。它提供包括:SDK、Key Apps、Middleware、Linux Kernel四个部分在内的开源手机操作系统。它开放了基于内核以上的开发工具,从而保证了内容的可移植性和多样性,为系统开发者开发应用程序提供了一套很好的框架,用户可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。

1.1 Android 系统层次结构

如图1所示,Android的架构是由:Linux内核、/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,通过编译基于框架的应用程序可以降低开发负荷应用软件原则上是在Dalvik VM上运行的。

1).关键应用程序

Android平台内包含一些关键应用程序,如:邮件收发客户端程序、短信收发程序、日历和网页浏览器等。

2)应用程序框架

Android应用程序的开发基于框架和组件。Android本身己在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。

3)C/C++函数库

Android应用程序框架之下是一套C/C++函数库,它们服务于Andrei应用程序组件,其功能通过组件间接提供给开发者。

4)Java程序运行环境

Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。

5)Linux内核

Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。

1.2 Android应用的构成和工作机制

对于一个Android应用程序来说,是由Activity、IntentReceiver、Serviee、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xd中进行配置,这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等,其中:

1) Activity组件,主要负责创建与用户进行交互的显示窗口,用户可以在这些窗口里通过调用SetContentView(View)方法来显示其用户界面;

2) IntentReceive组件,用于对外部事件的响应,当外部事件发生时,会使用NotifieationManager通知用户。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。

3) Service组件是不带UI提供连续信息的应用程序。本系统客户端扩展功能的音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天边听音乐。

4) ContentProvider应用程序组件能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。使用ContentProvider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据迁移性。

2 XMPP 协议基础

XMPP协议(Extensible Messaging and Presence Protocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的。它继承了在XML环境中灵活的发展性,因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

XMPP中定义了三个角色:客户端、服务器、网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

XMPP的基本网络结构如下:

C1----S1---S2---C3

C2----+--G1===FN1===FC1

符号表示:C1,C2,C3=XMPP客户端;S1,S2=XMPP;服务端G1=在XMPP和使用外部消息网络(非XMPP)的协议之间转换的网;FN1=外部消息网络;FC1=外部消息网络的客户端。

1)服务器

服务系统是XMPP通信的智能提取层,它主要负责:管理来自其他个体的会话连接或者XML流(streams)和来自客户端、服务器、其他个体的认证发送在XML流实体之中的适当的XML地址节点。

2)客户端

大多数客户端是通过TCP直接连接,并且使用XMPP获得服务器提供全部Jabber协议原理及其应用功能和其他服务。

3)网关

它的主要功能是将XMPP协议转换成外部消息(non-XMPP)系统使用的协议,也将返回的数据转换成XMPP。这些通信是基于网关和服务器,基于网关和外部消息系统之间的。

3 基于Android平台的即时通讯系统

本系统采用C/S体系结构〕,采用开源的XMPP作为即时通讯协议,通过GPRS无线网络采用TCP协议连接到服务器,通过架设开源的Openfire服务器作为即时通讯平台,实现客户端与客户端之间的即时通讯。

3.1 系统概述

本文是在Android平台上开发即时手机通讯系,它能够使用户在手机上方便的、迅捷的收发及时消息、传输图片。此外,根据现今用户对于即时通讯软件的特殊要求,比如:在聊天的基础之上还要有一些增值服务功能,以满足不同用户的需求。根据这些特点,本系统除了即时文本消息和图片的传输外,还实现了音乐播放和图片浏览的功能,让用户可以边聊天边听音乐,可以对好友传送过来的图片随时进行浏览,从而实现即时通讯系统的功能多样化。

3.2 系统架构

如图3所示,本系统采用客户端(C)/ 服务端(S)架构的体系结构,具有服务器端和客户端。

服务器端:采用基于XMPP协议的实时协作IM跨平台服务器---开源的Openfire服务器,为提供客户端进行会话连接、消息转发、认证及后台管理功能。

客户端:用户间的通讯是通过服务器的转发来实现的,将信息打包成XML文件发送给服务器,然后服务器将其转发给相应的用户。在Asmack库的支持下,XMPP的客户端的登录,认证,消息收发等基本功能需要重写相应函数,并调用相应接口来实现。

客户端采用MVC的软件结构。采用Android的XML文件对界面进行描述,作为视图层,负责前台界面的显示;Android的Activity活动类承载了控制层的任务,通过Activity进行逻辑业务处理;而对于数据库和与服务器连接的操作则属于Model层,该层在具体设计上则依赖于自定义的服务类。

4 本即时通讯系统的具体设计与实现

4.1 本系统主要界面

本系统为客户端/服务器端的系统架构,服务器端由基于Jabber技术的开源服务器Openfire和MySQL数据库共同构成。其中,Openfire服务器负责处理所有用户的请求、访问数据库和消息的传递;而客户端是基于Andrnid平台开发的,负责连接并登录服务器,通过服务器来实现客户端与客户端或PC机客户端之间的即时通讯。

1.Openfire服务器管理界面

如图4所示,通过该管理界面,管理员可以方面的管理用户的会话连接,服务器安全设置,以及用户信息等。

2)用户注册登录界面。

输入用户名密码后点击登录,客户端向服务器端发起login请求,登录成功后,客户端会将自己的Presence的状态置为available并发送给服务器,表示当前用户在线。不当对于登录成功的用户具有:浏览好友、图片浏览、音乐播放及添加好友等功能模块。

3)图片浏览功能:在本模块中,合法用户不仅可以实现本地图片的浏览功能,而且对于选中的图片还可以实现图片的自动缩放功能,以便于用户更好地阅读图片。

4)音乐播放界面:音频主界面主要是通过一个XML布局文件实现的,我们把它命名为music.xml,这里采用相对布局和线性布局相结合的方法。

5)即时通讯模块

如图5所示,本系统即时通讯模块集成了与好友之间的各种通讯方式,有普通的文本通讯、文件传输、留言录音通讯、语音通话功能。

4.2 文件传输模块的具体实现

在本系统功能实现过程中涉及到的文件传输分为:发送端和接收端。发送端主要通过sendFile()进行文件的发送,两个参数分别为path和msg,path代表文件路径,而msg代表伴随文件传输的普通文本信息。Msg中包含着文件名、文件路径等信息。然后创建FileTransferManager,并创建一个输出文件TransFer,调用其sendFile方法将文件发送出去,同时启动新线程用来对文件发送状态进行更新。

文件接收端也是需要创建FileTransferManager,然后通过addFileTransferListener方法设置文件监听,当有文件传输时,而且同意接收后,则通过IncomingFileTransfer来接收文件,并存入默认的目录中去。

5 结论

本即时通讯系统主要来用C/S的软件架构,并用XMPP协议作为即时通讯基本功能的通信协议,服务器端采用开源的Openfire服务器,客户端用了基于Android的开发平台。除了即时文本信息的传输外,还可以进行图片的传输,将IDEA数据加密算法引入系统中,对系统的通讯信息进行加密处理,保证通讯数据的安全,并对系统客户端的功能进行了扩展,增加了音乐的播放和图片浏览的功能。

参考文献

[1] 李新路.XMPP协议在Android即时通讯系统中的应用[J].电脑知识与技术,2013,(28)

[2] 罗伟.基于Android平台的即时通讯系统的研究与实现[D].湖南师范大学,2009

[3] 黄伟敏.基于XMPP协议的Android即时通信系统设计[J]电子设计工@,2011,19(8)

[4] 陈航,赵方.基于服务器推送技术和XMPP的Web IM系统实现[J].计算机工程与设,2010,31(5)

[5] Matos V, Grasser R. Building applications for the Android OS mobile platform: a primer and course materials[J]. Journal of Computing Sciences in Colleges, 2010, 26(1): 23-29.

即时通信功能范文第4篇

关键词: 即时通信; 高性能长链接; 文件传输; 通信恢复机制

中图分类号: TN911?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)13?0023?04

Abstract: With the advent of the mobile Internet era, a lot of excellent instant messaging softwares appear. Since the mature instant messaging technology is unopened, and the instant messaging framework with open source exists many problems, the communication system is prone to appear packet loss and message delay. In view of the above problems, a high?reliability instant communication system in mobile network was designed to make up the deficiency of open?source communication framework design. The improved method of general instant communication technology is put forward, in which the high?performance communication long link and time slice round algorithm are proposed, the message handshake protocol and message encryption method are adopted, and the communication link state detection algorithm is improved. The double service authentication method is proposed to ensure the safety of instant messaging system. The test system in the experiment includes the designed instant messaging framework. The experimental results can prove the instantaneity and high reliability of the systemy.

Keywords: instant messaging; high?performance long link; file transfer; communication recovery mechanism

随着移动网络的发展,网络聊天、视频和语音在网络通信中越来越受重视,从网络通信应用软件的用户量可以看出,网络即时聊天功能具有良好的用户体验[1]。在新开发的各类软件尤其是手机应用软件中,基本都会附带即时通信功能。这是一种发展趋势,网络通信已经成为了用户沟通的重要手段,渐渐地取代了传统的书信、短信等通信方式,使用的用户越来越多,同时用户对即时通信技术的稳定性要求也越来越高。但由于成熟的即时通信技术不开源,而开源的即时通信技术只实现了基本的建立链接,数据传输并没有做任何优化,使得在使用过程中经常出现消息延迟、消息丢失等情况[2]。

1 消息的即时传输

良好的用户体验对即时通信系统的消息传输具有较高的要求,尤其是消息的即时性。但在某些情况下,服务器并不能即时地将信息推送给接收者,存在着两种主要情况[3]。

(1) 客户端与服务器之间的通信长链接不稳定。服务器资源限制和网络问题的影响是客观存在的,从理论的角度没有办法避免。但可以从其他方面解决通信链接的稳定性对消息即时传输产生的影响。提出的高性能长链接、通信链接的检测和通信链接的恢复方法,有效地利用了服务器的资源,并保证链接断开后能够快速的恢复,从而保证消息的即时传输。

(2) 同一时间服务器需要推送的消息量较多。服务器转发消息也需要消耗时间,当同一时间进行即时通信的用户较多时,服务器来不及转发新接收的消息,导致了消息的阻塞,从而影响了消息的即时性。因此采用消息的并发推送方法解决消息阻塞的问题[4]。

1.1 高性能通信长链接

用户量的不断增加,服务器需要存储的通信链接越来越多,但一些通信链接在某些时候并不会被使用。通过分析得出客户端与服务器之间建立的通信长链接并不会随时都被利用,某些时间会处于空闲状态,为此提出了高性能通信长链接,尽量地减少客户端空闲状态下的链接时间,提高服务器的资源利用率,保证用户量剧增时通信链接不会因为服务器的资源限制而断开,从而保证消息的即时传输[5]。为了建立高性能通信链接,使用时间片轮转的算法。把用户开始登陆客户端的时间或者用户发送消息的时间记为开始时间,从开始时间起,把时间分为等长的时间片段假设得到的时间片段如图1所示。其中黑色区间表示在这个时间片段内用户有消息需要接收。白色的区域表示用户处于空闲状态没有消息需要接收。时间片轮转算法的目的是保证用户使用即时通信需要接收消息时,客户端与服务器存在通信链接[6]。而用户没有使用即时通信时,客户端与服务器之间不存在通信链接,从而释放了服务器的资源。时间片轮转算法的规则如下:

(1) 当客户端需要接收消息时,当前时间片为忙碌状态。相反如果没有消息需要接收,则当前时间片处于空闲状态。当用户登录软件后,默认第一个时间片为忙碌状态,并且客户端向服务器发送建立通信链接的请求。

(2) 如果当前时间片客户端处于忙碌状态,那么接下来的个时间片客户端都将主动向服务器端发送建立链接的请求。

(3) 如果当前时间片的前个时间片处于空闲状态,那么当前时间片的链接状态与前一个时间片的链接状态相反。例如前一个时间片客户端与服务器有通信链接,那么当前时间片客户端将向服务器发送断开链接的请求。

(4) 如果当前时间片的前个时间片中的任何一个时间片客户端处于忙碌状态,那么当前时间片客户端将向服务器发送建立链接的请求。

1.2 通信链接的检测和恢复

为了保证消息的即时传输,提高服务器长链接的效率,保证服务器与客户端链接稳定,避免意外中断情况的出现,采用有效的长链接检测方法和消息恢复方法[7]。理论上称客户端发送询问信息的过程为心跳过程,心跳时间指客户端向服务器发送询问信息的间隔时间。为了避免客户端频繁地发送心跳信息,消耗能量,或者避免心跳时间过长,导致消息传输的延迟。本文提出了心跳时间衰减函数如下:

(1)

式中:表示第时刻的心跳时间;表示第时刻的心跳时间;和表示时间衰减系数都是常量;表示最短的心跳时间间隔,同样也是一个常量;表示最长的心跳时间间隔,也是一个常量;new表示客户端发送了新的消息或者是服务器向客户端推送了新的消息。心跳机制和时间片轮转结合后,客户端只有处于忙碌状态时才会发送心跳信息。这样既保证了通信链接的稳定,又节约了服务器的资源。

1.3 客户端通信恢复机制

当客户端启动后,在客户端的后台会启动两个线程,在Android中使用Service服务,Service相当于Activity,只是没有界面而是运行在后台的服务。其中一个线程按照定时器的设定不停地向服务器发送心跳信息,确认客户端与服务器的通信链接是否正常[8]。另外一个线程用于监听服务器,接收服务器推送的消息。通过心跳机制,当客户端检测到与服务器的通信长链接断开时,需要向服务器请求再次建立链接以及获取离线数据。

为了进一步降低服务器的数据处理压力,提升用户体验。提出了一种获取离线消息的方法,通过短链接的方式获取离线消息[9]。短链接指的是客户端向服务器发送请求会携带必要的参数,而服务器做出响应时也会把客户端想获取的数据返回,当客户端得到数据后链接就断开,如图2所示。

基于这种方式,当客户端与服务器的链接再次建立后,由客户端主动发送获取离线消息的请求,获取离线消息可以使用HTTP协议。客户端不用发送确认信息,服务器在返回信息后可以直接清除数据库中暂存的数据,同时服务器也不用每次都对新建立的链接做查询操作,这样大大减少了服务器的压力,同时使获取离线消息的过程变得清晰,不会出现消息重复的情况。

1.4 消息并发推送

如果某一时刻发送消息的用户较多,而服务器来不及把消息推送给目标客户端,那么就会造成服务器需要推送的消息越来越多,最终导致服务器消息的阻塞。消息阻塞虽然不会导致消息的丢失,但是会严重影响消息的即时传输,会给用户带来特别不好的使用体验。

为了解决这个问题,在服务器端使用了消息的并发机制。当服务器从客户端接收到一条新的消息后,把消息存放在本地数据库的同时也会把消息存放进一个队列。而在服务器的后台,即时通信系统会根据服务器处理器的使用情况开启若干个线程,每一个线程所做的操作都相同,从队列中取出一个消息,然后根据消息中的目标地址,查询与其是否有通信链接,如果存在则把消息推送给客户端,如果不存在则不做任何处理。这样服务器可以在同一时间推送多条消息,有效地利用了服务器的资源,降低了消息阻塞的可能性。

2 消息的可靠传输

2.1 消息握手协议

为了确保消息在传输过程中不会出现丢失,提出了消息传输的握手协议。握手协议分为客户端给服务器发送消息的握手和服务器给客户端推送消息的握手。握手协议的本质是客户端与服务器端约定的消息传输规则,握手的主要目的就是为了确保消息不会丢失。

(1) 正向握手协议

正向握手协议是指客户端向服务器端发送消息时消息的确认协议。客户端需要发送消息时,会先把消息存放在本地数据库中,然后再调用发送消息的接口,存入本地数据库中的消息标记为未发送。如果服务器成功接收到消息,会给客户端返回一个包含了消息ID的反馈信息,表示自己已经接收到消息,客户端接收到反馈信息后,根据ID把本地数据库中的消息标记为已经发送,这样就完成了一次客户端到服务器的握手。如果没有接收到服务器的反馈信息,那么客户端将继续向服务器发送这条消息。

(2) 反向握手协议

反向握手协议指的是服务器端向客户端推送消息时消息的确认协议。当服务器接收到客户端的消息后,首先会把消息存在数据库中,然后从消息中解析出接收人的地址信息,然后根据地址信息查找目标客户端与自己是否有通信链接。

2.2 文件传输协议

为了避免使用通信长链接传输文件,提出了文件和文件地址相分离的传输方法,文件存储服务的提供商会提供文件上传的相应接口,客户端通过调用接口,上传文件后,会得到一个文件的网络地址,通过该网络地址用户就可以直接下载文件。

3 高复用架构

3.1 服务器

消息即时传输系统具有高复用性,就不能与应用软件的功能结合,本文提出了单系统双服务的系统架构。单系统指功能完全的应用软件系统,而双服务指为应用软件提供了后台服务的两套服务系统:消息的即时通信系统和数据功能处理系统。这样把消息和软件功能分离后,就可以使消息的即时传输服务在任何应用软件中使用,其功能模块如图3所示。

为了保证消息后台服务器的安全性,本节提出了双服务权限认证的方法。为了叙述简便,把消息后台服务器简称为消息系统,而应用软件的数据处理服务器简称为功能系统,如图4所示。通过这种方式,不仅增加了通信系统的安全性,同时也做到了功能的分离,使即时通信系统的后台通用性更高。

3.2 客户端

客户端和服务器的设计思想类似,单独把即时通信的功能打包封装,仅对外提供数据的操作接口,如图5所示。客户端的即时通信主要包含五个功能:发送建立链接的请求;发送消息;接收消息;发送心跳信息;断开通信链接,用户退出系统时会调用断开通信链接的功能,用于释放服务器的资源。应用程序的客户端添加即时通信的功能包后,只需要根据自己消息格式修改对本地数据库的操作,对外提供的接口不变[10]。

4 系统测试

4.1 测试系统介绍

测试系统的主要功能是用于学校老师、学生家长和学生之间的沟通,为学校管理学生带来便利。同时也包含了即时通信的功能模块,用于用户之间的交流沟通,发送团队公告信息和发送申请加入团队的申请信息。

应用系统在添加即时通信功能时,采用了本文设计的即时通信框架。后台使用了双服务器设计,提供了一个独立的消息系统和一个功能系统,两个系统之间使用同一个权限缓存。消息系统主要负责处理与客户端的消息通信,功能系统使用的是短链接,为客户端提供了获取数据的接口。客户端加入了即时通信包,并按照自己的需求对数据存储格式和数据读取格式做了修改。

服务器的配置是2 GB内存、双核、2.6 GB的主频,2 MB的网络带宽,客户端使用Android系统的手机。把一个客户端叫A,另一个客户端叫B。

4.2 实验结果

测试过程中通过改变客户端的工作状态来模拟用户的各种使用情况。

测试1:参数设置:客户端A、客户端B同时登陆系统,客户端A给客户端B发送消息。测试结果:客户端B能正常接收到客户端A发送的消息。

测试2:参数设置:客户端A、客户端B同时登陆系统,客户端A和客户端B同时给对方发送消息。测试结果:客户端A和客户端B都能正常接收到对方发送的消息。

测试3:参数设置:客户端A登陆系统,向客户端B发送消息。客户端B在客户端A发送消息后,登陆系统。测试结果:客户端A发送消息成功,客户端B正常接收到客户端A发送的消息。

通过用例测试,应用程序中的即时通信功能在很多情况下正常使用,满足了本文对即时通信框架功能的要求。

压力测试中,设置3个测试参数,并发人数、每个客户端共发送消息的条数、每两条消息发送的时间间隔(单位:ms)。对私人聊天、群聊天和发送通知进行了压力测试,消息发送和接收的成功率都在100%。但也有消息发送和接收不到100%,甚至有88%的成功率。通过分析可以发现,当消息发送成功率不高时,客户端的在线人数和发送消息的量普遍偏高,发送消息的频率也较快,而且发送成功率和这几个参数之间还有反比的关系。

因此可以得出结论,当消息发送成功率过低时,可能是受到了服务器硬件资源的限制。因为在线人数过多时,客户端需要和服务器建立的通信长链接较多,如果同时还有多人发送群信息或者公告,那么服务器的资源将被消耗殆尽。因而会有一些通信链接中断或者消息被阻塞。

5 结 论

即时通信是网络聊天的核心技术,本文从消息即时传输、消息可靠传输和高复用框架三个方面对现在的即时通信提出了改进方案。文中高性能通信长链接有效地解决了普通通信长链接消耗资源的问题,并且消息传输效果并不会比普通通信长链接差。同时,在通信链接的检测方法中提出了一个更加节约资源的心跳算法。加入了更高效的文件传输,利用第三方文件服务使文件传输更加可靠。然后,基于高复用框架设计了即时通信框架,减少了应用软件开发的周期。最后通过对即时通信系统的功能和性能的测试,充分证明了本文设计的即时通信系统可靠性较高,完成了对即时通信系统的研究。

参考文献

[1] 葛福鸿,刘晓莹,张丽萍.基于Socket技术的即时通信软件的设计与实现[J].电脑开发与应用,2011(5):63?65.

[2] 剧忻,苗放.基于MINA开发高性能网络应用程序[J].重庆工学院学报(自然科学版),2008,22(10):121?125.

[3] 郑志刚.Web服务组合执行引擎WebJetFlow的改进与优化[D].长沙:湖南师范大学,2008:19?25.

[4] 陈航,赵方.基于服务器推送技术和XMPP的Web IM系统实现[J].计算机工程与设计,2012(5):12?15.

[5] ZHOU T, LU Y. Examining mobile instant messaging user loyalty from the perspectives of network externalities and flow experience [J]. Computers in human behavior, 2011, 27(2): 883?889.

[6] ZAMAN M, ANANDARAJAN M, DAI Q. Experiencing flow with instant messaging and its facilitating role on creative behaviors [J]. Computers in human behavior, 2010, 26(5): 1009?1018.

[7] 潘凤,王华军,苗放,等.基于XMPP协议和Openfire的即时通信系统的开发[[J].计算机时代,2011(3):15?19.

[8] 吕东,刘小河,王鸿飞,等.基于Android的实时视频通信研究与实现[J].现代电子技术,2014,37(1):25?26.

即时通信功能范文第5篇

继中国移动推出飞信(Fetion)业务之后,中国电信也与微软(Microsoft)合作开发了名为天翼Live的即时通讯软件,意图从这个快速增长的市场中分得一杯羹。但前面既有QQ王牌,又有移动飞信新军,作为市场跟随者,天翼如何选择突破战略?

电信运营商为何齐盯即时通讯?

除了能利用即时通讯服务保持用户黏性,电信运营商还能够提供实时、准实时、非实时等多种通信模式的一站式服务。在互联网应用已经广泛渗透的基础上,已经有相当一部分用户形成了使用即时通讯服务的习惯,能否占领这一市场是电信运营商在无线互联网时展成败的关键一环。据CNNIC统计,2007年6月,中国网民1.62亿,70%使用即时通讯服务。随着移动网络的升级换代,数据业务增多并将占据绝对主导,语音业务IP化的趋势会更加明显。在这种情势下,电信运营商现有文本和语音服务将被替代,互联网的商业模式也将挑战运营商传统的收入模式。

与此同时,互联网移动化加速,即时通讯服务商将借助移动互联网将其业务带入移动数据通信甚至语音、视频通信领域,电信运营商需要积极应战。

对于电信运营商而言,即时通讯服务影响到了未来业务量和客户的争夺,也将直接影响他们的品牌。飞信是中国移动打开互联网的一个入口,希望借助飞信的互动界面和服务内容与现有用户建立更好的关系。一方面将用户牢牢地吸附在自己的网络上,并吸引更多潜在用户。另一方面,在培养用户使用习惯的过程中,将更多增值业务服务推广出去,开辟移动互联网时代依靠广告、提供虚拟个性增值服务等盈利新模式。

对于整体即时通讯市场而言,天翼Live的出现只不过是新一轮风潮的开始。此前刚刚被迫暂停超信服务的中国联通也表示:“正在建设功能更完善的系统,并致力于向用户提供功能更丰富、服务更优秀的即时通讯服务。”

移动飞信:强强联合的产物

即时通讯对运营商来说,最重要的意义不在于收入,而在于它是一个综合信息平台,可以辅助解决用户黏性问题,并把更多的业务附加在上面,腾讯QQ就是这方面的典范。腾讯所发挥的正是即时通讯所带来的平台效应。以QQ为平台,以庞大的用户群为基础,腾讯发展了在线游戏、电子商务、门户广告、增值服务等业务。目前,腾讯QQ已经拥有9.3亿的注册用户,活跃用户超过4亿,2008年,腾讯营收已经超过80亿元,并荣获通信产业榜无线互联网企业第一名。腾讯基于移动方式的QQ产品主要有三类:飞信QQ、超级QQ和手机QQ;前两种均是以短信方式实现的QQ产品,也曾是腾讯移动增值业务收入的主要来源。

但在电信运营商中,效仿QQ模式取得成功的目前还只有中国移动飞信,而飞信的成功同样也是难以复制的。毕竟,中国移动拥有接近5亿的手机用户,占国内手机用户数的70%以上,这是别的运营商无可比拟的优势。移动飞信的成功更多地仍然依靠中移动超强的运营商实力,其中免费短信与捆绑腾讯无疑是最重要的原因,中移动自身的业务开发能力并未得到体现。

飞信能在短时间内超越MSN坐上即时通讯行业的第三把交椅(飞信用户覆盖率于2008年7月首次进入即时通讯行业三甲,仅次于腾讯QQ和阿里旺旺),主要得益于对移动QQ用户的接收,与腾讯的这次合作体现了中国移动强大的谈判能力。中国移动在2006年7月推出飞信前,对移动即时通讯市场已经有了充分的认知。当时的移动即时通讯领域已经形成了腾讯QQ一家独大,微软MSN、网易泡泡、TOM Skype、新浪UC和雅虎通等多家并存的态势。而且即时通讯用户有着很强的“黏性”,没有用户就意味着没有市场,中国移动在技术、用户等各方面都不具有优势,可以说是从零开始。

但中国移动很清楚各大sP移动增值业务(包括移动即时通讯)都是通过自己开放的端口进行的,而用户也是通过手机来进行增值服务消费的,中国移动有强势地位。在2006年年底,中移动作出了与所有从事无线即时通讯业务的sP终止合作的决定。2006年12月29日,腾讯与中国移动签订城下之盟,宣布将与中国移动合作开发飞信QQ,并将其移动QQ用户过渡到飞信平台。双方约定实现腾讯QQ用户与中国移动飞信业务手机用户的互联互通,而此前腾讯的移动QQ业务和700万用户逐步过渡到飞信平台上,移动QQ淡出。这一整合期持续了半年时间,其间,移动QQ和飞信QQ的收入同时结算;自2007年7月起,统一由飞信QQ结算收入。

中国电信天翼Live:两个市场跟随者的合作

中国电信意识到,即时通讯市场的后进入者只有通过联合的方式,实现彼此间的互联互通,才能形成协同效应对抗强者。于是中国电信首先增加了MSN导入工具,并且能够随天翼Live安装包一起安装,这能帮助天翼Live最大限度地继承MSN的既有用户,降低用户更换即时通讯软件的成本。其次将支持异网短信,可向异网用户发送短信,并且能够将离线消息转为短信。这样不仅能够帮助中电信提升用户黏性,快速扩展即时通讯市场份额,形成即时通讯发展所必需的规模优势,还能形成对飞信、QQ等竞争对手的差异化优势。

但是这两个策略都有相应的掣肘因素,前者主要面对移动即时通讯对于短信的替代作用,后者必须考虑的因素将是高昂的异网短信成本。

因此中国电信还着重打造天翼Live与其他即时通信软件的差异:即在天翼Live上集成多种服务和应用,并不断添加新的服务进去,将天翼Live打造为所有应用的入口。除了与普通的MSN一样具有即时通讯的功能之外,天翼Live还融合了多种中国电信的业务和应用。包括爱音乐、高清影视、财经和汽车资讯、冲印照片服务等;通过PC版与手机版的互动,天翼Live还可实现互联网应用向3G手机的延伸。

在中国电信看来,天翼Live的成功推出开创了一种创新模式,将帮助中国电信向用户提供互联网服务,并与中国电信本身的通信服务紧密结合。通过与微软最新的Windows Live平台的合作,将进一步增强双方服务客户的广度和能力,支撑中国电信转型战略的实施。因此,对于中国电信而言,增强天翼Live的用户黏性将是当务之急,而互联互通和异网短信显然有助于这一目标的实现。天翼Live如何打破僵局