精华内容
下载资源
问答
  • 即时通信服务器代码,多人聊天,包括注册,添加好友,删除好友,还有群聊功能呢
  • jabber_Jabberd 即时通信服务器C++源代码,做即时通讯的可以参考。
  • iOS即时通信

    2016-03-24 22:32:54
    iOS即时通信
  • GA 1277.4-2020 互联网交互式服务安全管理要求 第4部分:即时通信服务.pdf
  • 即时通信项目

    2015-08-17 22:09:09
    是基于java的即时通信 项目 ,使用swing包来开发即时通信的界面
  • 即时通信客户端

    2013-07-09 09:46:39
    即时通信客户端,即时通信 客户端 QQ IM。
  • 即时通信 文档

    2013-07-09 09:56:41
    即时通信 文档
  • 即时通信安全研究

    2021-01-20 03:20:51
    即时通信(instant messaging,IM)的迅速发展正在急剧地改变人们通信、协作和娱乐的方式。即时通信研究涉及到网络安全、P2P、普适计算、Web Service等诸多技术领域。在技术和应用取得巨大成就的同时,即时通信要确立...
  • 即时通信工具公众信息服务发展管理暂行规定
  • 随着即时通信技术的快速发展,即时通信已经成为网络用户生活中的一 部分;同时,在企业级的即时通信中,即时消息已不再是简单的闲聊,上级 对下级的消息可能意味着一项任务的安排。所以即时消息不容轻易丢失, ...

      随着即时通信技术的快速发展,即时通信已经成为网络用户生活中的一 部分;同时,在企业级的即时通信中,即时消息已不再是简单的闲聊,上级 对下级的消息可能意味着一项任务的安排。所以即时消息不容轻易丢失,有 没有真正送达需要有反馈。
      目前的即时通信系统一般都具备消息送达对方的确认机制,当接收消息的终端离线时,消息便当作离线消息保存,然而,当接收消息的终端为移动 终端时,由于移动终端离线的几率比个人计算机(PC,Personal Computer) 终端离线的几率要大,因此给服务器带来很大的离线消息保存压力,当超过一定的压力时,服务器只能放弃保存,消息的丢失不可避免。实际上,移动 终端很多情况下的离线是由于移动网络信号变化导致,这种离线会非常短暂, 过不了几秒钟就又重新上线,此种掉线称之为临时掉线;而当移动终端因网 络故障或关机造成的掉线则称之为永久掉线。
      如图1,为现有技术中一种即时通信的方法的流程示意图,此处以PC终 端发送消息给移动终端为例,当移动终端为手机终端,手机终端临时掉线时 的处理方法如下:当PC终端发送即时消息给手机终端,经过中央服务器中转; 手机终端临时掉线,没有给出确认,中央服务器将即时消息离线保存,并删 除会话;当移动终端网络恢复,则重新登录并开始会话,中央服务器确认之 后分析新的会话身份标识号(ID,Identity);中央服务器将离线保存的即时消 息发送给手机终端,手机终端接收后给出确认。由于在现有技术中,对于暂 时未得到确认的消息一般采取服务器进行离线保存方法,留待下次发送,这 种即时通信系统的接收消息的终端无论是移动终端,还是PC终端,无论该终 端是临时掉线还是永久掉线而没有给出确认,都是采用同样的手段处理的。
      对于接收消息的终端为PC终端,这样的处理方法是合理的,因为PC终 端一般都是通过有线连接,不容易发生掉线,但对于接收消息的终端为移动 终端却是不合理的,因为移动终端接入的是移动无线网,受干扰或出现盲点 的情况不可避免,掉线更容易发生。如果当移动终端由于无线网络的不稳定 而介于离线和在线之间时,需要反复地存储离线消息,加大了数据库服务器 存储压力;同时临时掉线需要重新进行认证和登录,增加了通信开销,恢复 慢,用户体验差。
      本发明实施例提供了一种即时通信方法、系统及装置,减轻由于移动终 端的临时掉线而导致的服务器存储压力增大的问题,提高通信效率。
      一种即时通信方法,包括:
      移动接入服务器接收并缓存来自第一终端的即时消息;
      向第二移动终端转发所述即时消息;
      若在转发所述即时消息后的第一掉线时间门限内未收到第二移动终端返 回的响应消息,但在转发所述即时消息后的第二掉线时间门限内收到第二移 动终端返回的响应消息,则确定第二移动终端临时掉线;若在第二掉线时间 门限内仍未收到第二移动终端返回的响应消息,则确定第二移动终端永久掉 线;
      若第二移动终端临时掉线,则向第二移动终端重新发送所述即时消息;
      若第二移动终端永久掉线,则通知中央服务器离线保存所述即时消息。
      一种移动接入服务器,包括:
      消息接收缓存模块,用于接收并缓存来自第一终端的即时消息;
      消息发送模块,用于向第二移动终端转发所述消息接收缓存模块接收的 即时消息;
      判断模块,用于若在转发所述即时消息后的第一掉线时间门限内未收到 第二移动终端返回的响应消息,但在第二掉线时间门限内收到第二移动终端 返回的响应消息,则确定第二移动终端临时掉线,并触发临时掉线处理模块 进行操作;若在第二掉线时间门限内仍未收到第二移动终端返回的响应消息, 则确定第二移动终端永久掉线,并触发永久掉线处理模块进行操作;
      临时掉线处理模块,用于在第二移动终端临时掉线时,向第二移动终端 重新发送即时消息;
      永久掉线处理模块,用于在第二移动终端永久掉线时,指示消息回收模 块通知中央服务器离线保存所述即时消息;
      消息回收模块,用于根据永久掉线处理模块的指示,通知中央服务器离 线保存所述即时消息。
      一种即时通信系统,其特征在于,包括:
      移动接入服务器,用于接收并缓存来自第一终端的即时消息;向第二移 动终端转发所述即时消息;若在转发所述即时消息后的第一掉线时间门限内 未收到第二移动终端返回的响应消息,但第二掉线时间门限内收到第二移动 终端返回的响应消息,则确定第二移动终端临时掉线;若在第二掉线时间门 限内仍未收到第二移动终端返回的响应消息,则确定第二移动终端永久掉线; 若第二移动终端临时掉线,则向第二移动终端重新发送所述即时消息;若第 二移动终端永久掉线,则通知中央服务器离线保存所述即时消息;
      中央服务器,用于接收移动接入服务器转发的即时消息;接收移动接入 服务器发送离线保存所述即时消息的请求,并进行离线保存,给移动接入服 务器发送响应消息。
    从以上技术方案可以看出,本发明实施例提供的一种即时通信方法、系 统及装置,能够针对接收消息的移动终端作专门的会话管理,不再盲目地对 消息进行离线保存,而是提供了多种恢复手段来将发送消息的终端和接收消 息的移动终端之间的会话继续下去,同时能够减轻由于移动终端临时掉线而 导致的中央服务器存储压力增大的问题,提高了通信效率,改善了移动终端 的用户体验。
    附图说明
    图1为现有技术中提供的一种即时通信方法的时序图;
    这里写图片描述
    图2为本发明实施例一提供的一种即时通信方法的流程示意图;
    这里写图片描述
    图3为本发明实施例二提供的一种即时通信方法的时序图;
    这里写图片描述
    图4为本发明实施例三提供的一种即时通信方法的时序图;
    这里写图片描述
    图5为本发明实施例四提供的一种即时通信方法的时序图;
    这里写图片描述
    图6为本发明实施例五提供的一种即时通信方法的时序图;
    这里写图片描述
    图7为本发明实施例提供的即时通信方法的会话状态迁移图;
    这里写图片描述
    图8为本发明实施例提供的一种即时通信装置的结构示意图;
    这里写图片描述
    图9为图8所提供的装置中临时掉线处理模块结构示意图;
    这里写图片描述
    图10为图8所提供的装置中永久掉线处理模块结构示意图;
    这里写图片描述
    图11为本发明实施例提供的一种即时通信系统的结构示意图。
    这里写图片描述
      具体实施方式
      有鉴于此,本发明实施例提供了一种即时通信方法、系统及装置,减轻 由于移动终端的临时掉线而导致的服务器存储压力增大的问题,提高通信效 率。
    以下结合附图对本发明提供的即时通信方法、装置及系统进行详细描述。
      即时通信(IM,Instant Messaging)是一种可以让使用者在网络上建立某 种私人聊天室(chatroom)的实时通讯服务。目前在互联网上受欢迎的即时通 信软件包括腾讯QQ、百度HI、新浪UC、MSN Messenger、Lava系列( Lava-Lava、Lava快信、Lava个信)等。
      实施例一:
      本发明实施例提供的一种即时通信方法,其中,发送消息方为第一终端, 接收消息方为第二移动终端,请参考图2,为该通信方法时序图,其具体包括 以下步骤:
      S101、移动接入服务器接收并缓存来自第一终端的即时消息;
      其中,第一终端可以是PC终端,也可以是移动终端或其它终端设备。
      S102、向第二移动终端转发即时消息;
    移动接入服务器接收到即时消息,并返回确认接收的响应消息后,转发 该即时消息给第二移动终端;
    可以理解的是,通信领域内,移动终端也叫移动通信终端,是指可以在 移动中使用的计算机设备,广义的讲包括手机、笔记本、销售点情报管理系 统(POS,Pointofsales)机,甚至包括车载电脑,通常情况下是指手机或者具 有多种应用功能的智能手机;
      需要说明的是,移动接入服务器接收并转发的即时消息可以按照特定的 格式封装在一个数据包中;数据包中具有固定的头部和消息体,消息体例如 用可扩展标记语言(XML,Extensible Markup Language)或其它语言来描述; 消息头部由16个字节组成,依次为4字节消息长度、2字节消息版本号、1 字节消息类型和发送方、1字节消息功能分类、1字节命令码、1字节内容编 码方式、2字节消息流水号、4字节的会话身份标识;
      具体地说,1字节消息类型和发送方,其中高四位为发送方,0x10为移 动接入服务器,0x00为移动终端,移动接入服务器将根据发送方身份进行判 断,接受第二移动终端的请求;低四位为消息类型,消息类型采用一一对应, 例如请求消息与回复消息互相对应,并标记为0x01,指示消息与确认消息互 相对应,并标记为0x10,通知消息标记为0x11,无需对应;其中,请求消息 可以是第二移动终端主动向中央服务器发送的消息,中央服务器的响应消息 则称为回复消息,指示消息可以是中央服务器主动向第二移动终端发送的消 息,第二移动终端的响应消息则可称为确认消息;通知消息则可以是中央服 务器发往第二移动终端,第二移动终端不需要答复的消息。
      进一步地,1字节消息功能分类和1字节命令码可以合并成唯一一种消息 功能,例如即时消息的功能为0x03,命令码为0x0a,组合成0x030a;1字节 内容编码方式及说明,如表1,该字节最低位表示消息是否加密,倒数第二位 表示消息是否压缩;
      表1 1字节编码方式及说明
      命令码 编码说明 0x00 不压缩,不加密 0x01 不压缩,加密 0x04 压缩,不加密 0x03 压缩,加密
    更进一步地,4字节的会话ID,初始时由移动接入服务器生成,不为0, 第二移动终端在后续所有请求都通过移动接入服务器,供移动接入服务器定 位其对应的会话。
      S103、若在转发即时消息后的第一掉线时间门限内未收到第二移动终端 返回的响应消息,但在转发即时消息后的第二掉线时间门限内收到第二移动 终端返回的响应消息,则确定第二移动终端临时掉线;若在第二掉线时间门 限内仍未收到第二移动终端返回的响应消息,则确定第二移动终端永久掉线;
      进一步地,步骤S101与步骤S102涉及的即时消息所对应的会话是在正 常服务状态下完成的;若在转发即时消息后的第一掉线时间门限内未收到第 二移动终端返回的响应消息,则会话状态会迁移到会话保持状态;但若在转 发即时消息后的第二掉线时间门限内收到第二移动终端返回的响应消息,则 会话状态将迁移回正常服务状态;
    可以理解的是,当移动接入服务器向第二移动终端转发即时消息后,若 收到第二移动终端返回的确认消息收到的响应消息,即会话一直保持正常服 务状态,该第二移动终端未掉线;
      需要说明的是,第二移动终端返回的响应消息类型可以是属于即时消息 的一种,其消息特征同步骤S102所讲述的即时消息的消息特征。
      S104、若第二移动终端临时掉线,则向第二移动终端重新发送即时消息;
    在第二移动终端临时掉线的情况下,当第二移动终端网络恢复,并接收 到第二移动终端的激活消息,则会话由会话保持状态迁移到正常服务状态, 移动接入服务器将此缓存的即时消息重新发送给第二移动终端,并收到移动 终端返回的确认消息收到的响应消息;
      可以理解的是,第二移动终端的临时掉线通常是指由于移动网络信号变 化导致,这种掉线会非常短暂,过不了几秒钟就又重新上线,加上第二移动 终端接入的是移动无线网,受干扰或出现盲点的情况不可避免,因此会出现 临时掉线的情况;
      需要说明的是,由第二移动终端发出的激活消息类型也可以是即时消息 的一种,其消息特征同步骤S102所讲述的即时消息的消息特征;此激活消息 可以是心跳消息,也可以是移动终端的登录请求消息,此处不作具体限定。
      S105、若第二移动终端永久掉线,则通知中央服务器离线保存即时消息;
    在判断出第二移动终端永久掉线后,将会话状态由会话保持状态迁移到 会话退出状态,移动接入服务器通知中央服务器将该即时消息进行离线保存;
      可以理解的是,第二移动终端永久掉线通常是移动终端因网络故障或关 机造成的掉线,因此当第二移动终端重新登录的时候,需重新开始一个会话 的创建过程,该会话的状态为初始状态;在此状态下,移动终端响应中央服 务器系统的能力,如将模拟声音讯号(Voice)数字化(VoIP,Voice over Internet Protocol)、通讯录同步、短信能力、点击拨号(CTD,Click To Dial)、点击 进入会议(CTC,Click To Conference)能力等;这是一个移动终端对中央服 务器的一个初始配置认识过程,数据量较大,需要作较多的资源分析与查询 工作,通常把这个过程称之为移动终端在复杂模式下发送的登录请求的过程。
      本发明实施例一中讲述了第一终端和第二移动终端的即时通信流程和方 法,其能够针对接收消息的第二移动终端作专门的会话管理,不再盲目地对 消息进行离线保存,减轻由于第二移动终端临时掉线而导致的中央服务器存 储压力增大的问题,提高了通信效率。
      实施例二:
      为了更清晰地表达上述实施例的各个步骤,并与现有的通信方法形成鲜 明的对比,以下针对第二移动终端临时掉线情况作具体阐述:
      请参考图3,为本发明实施例提供的一种通信方法中,以第一终端为PC 终端,第二移动终端具体为手机终端时为例,当PC终端和手机终端之间进行 通信时,手机终端临时掉线的流程示意图,其具体步骤如下,为方便描述, 该实施例中的即时消息记为M1:
      S201、PC终端向中央服务器发送M1;
      S202、中央服务器向PC终端返回确认消息;
      S203、中央服务器向移动接入服务器发送M1;
      S204、移动接入服务器缓存M1;
      S205、移动接入服务器向中央服务器返回确认消息;
      步骤S201至步骤S205可具体为:PC终端与手机终端之间进行通信,首 先,由PC终端向中央服务器发送M1,中央服务器返回确认并向移动接入服 务器转发该M1,移动接入服务器接收到M1后,缓存M1,并向中央服务器 返回确认;
      需要说明的是,第二移动终端即本实施例中的手机终端,不是直接与中 央服务器通信,而是连接移动接入服务器,通过移动接入服务器间接地与中 央服务器通信;而PC终端则仍然直接连接中央服务器,不连接移动接入服务 器。
      S206、移动接入服务器向手机终端转发M1;
    移动接入服务器接收到中央服务器转发的M1,并返回确认接收的响应消 息后,转发M1给手机终端;
    可以理解的是,移动接入服务器接收并转发的M1,其消息特征可以参照 实施例一中步骤S102所讲述的即时消息的消息特征,此处不再具体阐述。
      S207、若在转发M1后的第一掉线时间门限T1内未收到手机终端返回的 响应消息,但在转发M1后的第二掉线时间门限T2内接收到手机终端返回的 响应消息,则确定手机终端临时掉线;
    移动接入服务器向手机终端转发M1后,若在转发M1后的T1(例如5 分钟)内未收到第二移动终端返回的响应消息,但在T2(例如30分钟)内收 到第二移动终端返回的响应消息,则确定第二移动终端临时掉线;
      具体地说,若在T1内,没有收到手机终端返回的响应消息,则会话状态 将由正常服务状态迁移到会话保持状态;另外,由于第二掉线时间门限为T2, 所以会保持状态的保持时间为T2-T1,若在这T2-T1时间段内接收到手机终端 返回的响应消息,则确定手机终端临时掉线;
      需要说明的是,T2大于T1,意思是在保持时间T2-T1内接收到手机终端 返回的响应消息,即代表在转发消息后的T2内接收到手机终端返回的响应消 息;另外,手机终端返回的响应消息类型可以是即时消息的一种,其消息特 征可参考步骤S102所讲述的即时消息的消息特征,此处不再具体阐述;
      可以理解的是,当移动接入服务器向手机终端转发即时消息后,若收到 手机终端返回的确认消息收到的响应消息,则该手机终端未掉线。
      S208、手机终端在T1内恢复网络;
      S209、在转发M1后的T1内收到手机终端的心跳消息;
    可以理解的是,当在T1内收到手机终端的心跳消息或其他的激活消息, 即手机终端恢复网络,否则,执行步骤 S212;
      S210、移动接入服务器向手机终端重新发送M1;
      S211、手机终端向移动接入服务器返回确认消息;
    步骤S208至步骤S211可具体为:当在转发M1后的T1内收到手机终端 的心跳消息,则移动接入服务器将此缓存的M1重新发送给手机终端,并接收 手机终端返回的确认消息收到的响应消息,此过程,会话状态保持为正常服 务状态。
      需要说明的是,由手机终端发出的心跳消息类型也可以是即时消息的一 种,命令码为0x0312,这类消息由移动终端每分钟定期向移动接入服务器上 报;另外,其消息特征可参照步骤S102所讲述的即时消息的消息特征,此处 不再具体阐述;
    S212、手机终端在T1内没有恢复网络;
    S213、会话状态迁移到会话保持状态;
    步骤S212到步骤S213可具体为:当移动接入服务器在T1内没有收到手 机终端发出的心跳消息或其他激活消息,即表示手机终端在T1内没有恢复网 络,则将会话状态会由正常服务状态迁移到会话保持状态。
    S214、手机终端在T2内恢复网络;
    S215、在转发M1后的T2内收到手机终端简单模式的登录请求;
    S216、移动接入服务器向手机终端返回登录确认消息;
    S217、会话状态迁移到正常服务状态;
    S218、移动接入服务器向手机终端重新发送M1;
    S219、手机终端向移动接入服务器返回确认消息;
      步骤S214至步骤S219可具体为:由于第二掉线时间门限设定为T2,所 以会话保持状态的保持时间为T2-T1,若在这T2-T1时间段内接收到手机终端 发出的激活消息,例如是基于原会话ID简单模式的登录请求,则移动接入服 务器返回登录确认消息,并将会话状态重新迁移回正常服务状态,接着,移 动接入服务器将此缓存的M1重新发送给手机终端,接收手机终端返回的确认 M1收到的响应消息;
      同样地,T2大于T1,意思是在保持时间T2-T1的时间段内接收到手机终 端返回的响应消息,即代表在转发M1后的T2内接收到手机终端返回的响应 消息;
      需要说明的是,简单模式的登录是指需要手机终端的用户输入一个用户 名和一个用户密码进行验证即可,不同于复杂模式的登录,即不需要重新开 始一个会话的创建过程,来给手机终端响应中央服务器系统的能力。
    本发明实施例二中主要以用户终端为PC终端,第二移动终端具体为手机 终端时为例,当PC终端和手机终端之间进行通信时,手机终端临时掉线的处 理过程和方法,针对手机终端临时掉线的情况提供了两种恢复手段来将用户 终端和移动终端之间的会话继续下去,同样地,能够减轻由于移动终端临时 掉线而导致的中央服务器存储压力增大的问题,提高了通信效率,改善了移 动终端的用户体验。
      实施例三:
      以下实施例针对移动终端永久掉线情况作具体阐述:
      请参考图4,为本发明实施例提供的一种通信方法中,以第一终端为PC 终端,第二移动终端具体为手机终端时为例,当PC终端和手机终端之间进行 通信时,手机终端永久掉线的流程示意图,为方便描述,该实施例中的即时 消息记为M2,其具体步骤如下:
    S301、PC终端向中央服务器发送M2;
    S302、中央服务器向PC终端返回确认消息;
    S303、中央服务器向移动接入服务器发送M2;
    S304、移动接入服务器缓存M2;
    S305、移动接入服务器向中央服务器返回确认消息;
    S306、移动接入服务器向手机终端转发M2;
      步骤S301至步骤S306可参考实施例二中步骤步骤S201至步骤S206的 相关内容,此处不再具体阐述;
    S307、若在转发M2后的第二掉线时间门限T2内仍未收到手机终端返回 的响应消息,则确定手机终端永久掉线;
    移动接入服务器向手机终端转发M2后,在转发M2后T2内仍未收到手 机终端返回的响应消息;可以认为,在第一掉线时间门限T1内没有收到手机 终端的激活消息,如心跳消息;在会话保持状态的保持时间为T2-T1内也没 有接收到手机终端发出的激活消息,可以是基于原会话ID简单模式的登录请 求,所以也就说T2内仍未收到手机终端返回的响应消息,则可该确定手机终 端永久掉线。
    S308、手机终端在T1内没有恢复网络;
    S309、会话状态迁移到会话保持状态;
      步骤S308至步骤S309可参考实施例二中步骤S212至步骤S213的相关 内容,此处不再具体阐述。
    S310、手机终端在T2内还是没有恢复网络;
    S311、会话状态迁移到会话退出状态;
    S312、通知中央服务器离线保存M2;
    S313、中央服务器离线保存M2;
    S314、移动接入服务器确认中央服务器离线保存M2;
    S315、退出M2对应的会话,并释放缓存的M2对应的缓存资源;
      步骤S310至步骤S315可具体为;在确定该手机终端为永久掉线,即手 机终端在T2-T1时间段内还是没有恢复网络,则缓存M2;会话状态由会话保 持状态迁移为会话退出状态;在会话退出状态下,移动接入服务器通知中央 服务器离线保存M2;并且在确认中央服务器离线保存M2后,退出M2对应 的会话,并释放缓存的M2对应的缓存资源。
      需要说明的是,在手机终端永久掉线后,为了保证安全性,手机终端需 要在复杂模式下进行重新登录,获得一个新的会话ID,重新开始一轮会话, 本实施例基于这种场合,提出了以下可实施方案,其步骤如下:
    S316、接收手机终端在复杂模式下发送的登录请求,向中央服务器转发 该登录请求;
    S317、接收中央服务器返回的响应消息并将其转发至手机终端;
    S318、创建新的会话;
    S319、接收中央服务器发送的离线保存的M2,并将其转发至手机终端;
    S320、返回离线保存的M2接收确认的响应消息;
      步骤S316至步骤S320可具体为:移动接入服务器接收手机终端在复杂 模式下发送的登录请求,把会话状态由初始状态置为正常服务状态,并向中 央服务器转发该登录请求;请求通过,接收中央服务器返回的响应消息并将 其转发至手机终端;移动接入服务器创建新的会话,接收中央服务器发送的 离线保存的M2并将其转发至手机终端;在接收到手机终端发送的离线保存的 M2接收确认的响应消息后,向中央服务器转发;
    可以理解的是,手机终端永久掉线可以是指手机终端因网络故障或关机 等造成的掉线,因此当手机终端永久掉线了,为了保证安全性,一旦进入了 会话退出状态,手机终端需要在复杂模式下进行重新登录,获得一个新的会 话ID,重新开始一轮会话;这是因为在通信中,手机终端会向中央服务器发 送版本查询协议,如即时消息报文类型为0x0001,此时会话ID为0,是手机 终端向中央服务器发出的第一个消息,移动接入服务器在响应中给出会话ID, 手机终端需要记录所获取的会话ID作为以后通信的凭证。
      需要说明的是,手机终端在复杂模式下发送登录请求,也就是说在复杂 模式下进行重新登录,即需要重新开始一个会话的创建过程,给移动终端响 应中央服务器系统的能力,如将模拟声音讯号数字化、通讯录同步、短信能 力、点击拨号、点击进入会议能力等;这是一个移动终端对中央服务器的一 个初始配置认识过程,数据量较大,需要作较多的资源分析与查询工作,因 此在该实施例中,将此过程称之为手机终端在复杂模式下重新登录的过程。
      在本发明实施例三中主要以第一终端为PC终端,第二移动终端具体为手 机终端时为例,当PC终端和手机终端之间进行通信时,手机终端永久掉线的 处理过程和方法,过程中采用了缓存消息,消息离线保存等手段对手机终端 永久掉线时的即时消息进行处理,同样地,能够减轻由于移动终端临时掉线 而导致的中央服务器存储压力增大的问题,提高了通信效率,改善了移动终 端的用户体验。
      实施例四:
      实施例二和实施例三中,以第一终端为PC终端,第二移动终端具体为手 机终端时为例,当PC终端和手机终端之间进行通信时,就手机终端临时掉线 和永久掉线两种情况分别进行描述;以下实施例针对第一终端为移动终端, 其和第二移动终端之间的通信来进行简单阐述;
      请参考图5,为两个移动终端之间的通信方法时序图,本实施例中,第二 移动终端与移动终端均为手机终端,为了便于区分,其中手机终端A为发送 消息方,手机终端B为接收消息方,为方便描述,该实施例中的即时消息记 为M3,其步骤如下:
    S401、移动接入服务器接收来自手机终端A的M3;
    S402、移动接入服务器缓存M3;
    S403、向手机终端A返回确认消息;
    S404、移动接入服务器把M3转发至中央服务器;
    S405、中央服务器向移动接入服务器返回确认消息;
    S406、由中央服务器向移动接入服务器转发M3;
    S407、移动接入服务器返回确认消息;
      步骤S401至步骤S406可具体为:手机终端A与手机终端B之间进行通 信,首先,由手机终端A直接向移动接入服务器发送M3,移动接入服务器接 收并缓存M3,向手机终端A返回确认后,向中央服务器转发M3,中央服务 器再给出确认;
      而后由中央服务器向移动接入服务器发送M3,并接收中央服务器返回确 认的响应消息;
    需要说明的是,接收消息方即本实施例中的手机终端B,不是直接与中 央服务器通信的,而是连接移动接入服务器,通过移动接入服务器间接地与 中央服务器通信;相同地,发送M3的手机终端A,也是不直接连接中央服务 器,而是通过连接移动接入服务器间接地与中央服务器进行通信,与实施例 二和实施例三中发送消息方为PC终端有所区别。
    S408、向手机终端B转发M3;
      移动接入服务器接收到中央服务器转发的M3,并返回确认接收的响应消 息后,转发M3给手机终端B;
    可以理解的是,移动接入服务器接收并转发的M3,其消息特征可参照步 骤S102所讲述的即时消息的消息特征,此处不再具体阐述。
    S409、手机终端B向移动接入服务器返回确认消息;
      当移动接入服务器向手机终端B转发M3后,收到手机终端B返回的确 认消息收到的响应消息,则表示该手机终端B没有掉线;
      需要说明的是,当移动接入服务器在预设定的第一掉线时间门限T1和第 二掉线时间门限T2内没有收到手机终端B返回的响应消息,则可以确定手机 终端B掉线;进一步地,若手机终端B临时掉线,则可以按照实施例二中的 处理方法进行处理;若手机终端B永久掉线,则可以按照实施例三中的处理 方法进行处理,此处不再具体阐述。
    本发明实施例四中,针对第一终端为移动终端,其和第二移动终端之间 的通信来进行阐述,实施例四表明,本发明提供的即时通信方法一样适用对 于发送消息方为移动终端的情况,也能够减轻由于移动终端临时掉线而导致 的中央服务器存储压力增大的问题,提高了通信效率。
    实施例五:
      下面再举一个群发即时消息的例子,有助于更进一步地了解整套系统的 运作。
      在该实施例中,假设一个群中有三个终端,分别是发送消息方的手机终 端A,接收消息方的手机终端B和PC终端C;开始群聊时,手机终端A往 群中发送即时消息,实际是由手机终端A把即时消息分别发给群中的手机终 端B和PC终端C,即产生两条独立的即时消息;如果手机终端B或PC终端 C发生掉线的情况,同样可以按照实施例二、实施例三和实施例四的处理方 案对其进行处理。请参考图6,为群发消息时的时序图,在本实施例中,以接 收消息方中的手机终端B在群聊时掉线作为应用场景进行描述,为方便描述, 该实施例中手机终端A发送到手机终端B的即时消息记为M4,手机终端A 发送到PC终端的即时消息记为M5,其具体步骤如下:
    S501、移动接入服务器接收并缓存来自手机终端A的M4,接收终端为 手机终端B;
    S502、向手机终端A返回确认消息;
    S503、移动接入服务器把M4转发至中央服务器;
    S504、中央服务器向移动接入服务器返回确认消息;
    S505、由中央服务器向移动接入服务器转发M4;
    S506、移动接入服务器返回确认消息;
      步骤S501至步骤S506可具体为:由手机终端A向群中发送M4,该实 施例中,接收终端可以先设定为手机终端B;即在手机终端A与手机终端B 之间进行通信,首先,由手机终端A直接向移动接入服务器发送M4,确定 M4接受终端为手机终端B;移动接入服务器接收并缓存M4,向手机终端A 返回确认后,向中央服务器转发M4,并附上指示具体接收终端为手机终端B 的指示消息,中央服务器再给出确认;
      而后中央服务器根据接收者为手机终端B,则向移动接入服务器转发该 即时消息和指示消息,并接收中央服务器返回确认的响应消息。
    S507、向手机终端B转发M4;
      移动接入服务器接收到中央服务器转发的M4和指示消息,并返回确认接 收的响应消息后,转发M4给手机终端B;
    S508、手机终端B向移动接入服务器返回确认消息;
      当移动接入服务器向手机终端B转发M4后,收到手机终端B返回的确 认M4收到的响应消息,则表示该手机终端B没有掉线;
      可以理解的是,当移动接入服务器没有收到手机终端B返回的响应消息, 则判断手机终端B掉线,并进一步地根据预设的掉线时间门限来判断手机终 端B是临时掉线还是永久掉线;若手机终端B临时掉线,则可以按照实施例 二中的处理方法进行处理,此处不再具体阐述;
      需要说明的是,若手机终端B永久掉线,即在转发M4后的第二掉线时 间门限T2内,没有收到手机终端返回的确认消息,则可以按照实施例三中的 处理方法进行处理,如缓存M4,请求离线保存M4等,此处不再具体阐述; 但是在中央服务器离线保存M4后,会执行以下步骤:
    S509、中央服务器更新手机终端B的在线或离线状态,更改在线用户列 表,指示手机终端A下次群发消息时无需再发给手机终端B;
    S510、中央服务器通知移动接入服务器手机终端B掉线;
    S511、移动接入服务器返回确认消息;
    S512、移动接入服务器将手机终端B掉线的消息转发至手机终端A;
    S513、手机终端A返回确认消息;
      步骤S510至步骤S513可具体为:中央服务器将手机终端B掉线的消息, 和下次群发即时消息不必要再发送到手机终端B的消息,发送到移动接入服 务器,并通过其转发至手机终端A,当手机终端A获知手机终端B已掉线, 则下次在群发即时消息时会跳过B,即无需把即时消息发送给掉线的手机终 端B。
    S514、移动接入服务器接收并缓存来自手机终端A的M5,接收终端为 PC终端C;
    S515、向手机终端A返回确认消息;
    S516、移动接入服务器把M4转发至中央服务器;
    S517、中央服务器向移动接入服务器返回确认消息;
      步骤S514至步骤S517可具体为:由于手机终端B掉线,因此手机终端 A无需再向手机终端B发送即时消息,即接收终端为PC终端C;首先,由手 机终端A直接向移动接入服务器发送M5,确定接收终端为PC终端C;移动 接入服务器接收并缓存M5,向手机终端A返回确认后,向中央服务器转发 M5,并附上指示具体接收终端为PC终端C的指示消息指示消息,中央服务 器再给出确认。
    S518、中央服务器向PC终端C转发即时消息;
    移动接入服务器接收到中央服务器转发的M5和指示消息,并返回确认接 收的响应消息后,转发M5给PC终端C;
    S519、PC终端C向中央服务器返回确认消息;
    当移动接入服务器向PC终端C转发M5后,收到PC终端C返回的确认 M5收到的响应消息,则该PC终端C没有掉线;
      可以理解的是,当移动接入服务器在预设定的第一掉线时间门限和第二 掉线时间门限没有收到PC终端C返回的响应消息,则可以确定PC终端C掉 线;若PC终端C临时掉线,则可以按照实施例二中的处理方法进行处理,若 PC终端C永久掉线,则可以按照实施例三中的处理方法进行处理,此处不再 具体阐述。
    本发明实施例五中,利用一个群发即时消息的例子,有助于更进一步地 了解整套系统的运作,同样地,实施例五的实施也是能够减轻由于移动终端 临时掉线而导致的中央服务器存储压力增大的问题,起到了提高通信效率的 作用。
      下面进一步借助状态迁移图来讲解整套系统的运作,和揭示移动接入服 务器的内部细节,请参考图7,为本发明实施例中涉及的即时通信方法的会话 状态迁移图:
    针对本发明实施例中涉及的即时通信方法,在用户终端向移动终端发送 即时消息的过程中,会话状态包括初始状态701、正常服务状态702、保持状 态703和退出状态704,并且,图中有标注说明的状态迁移条件详细说明如下:
    S701、第二移动终端在复杂模式下的登录;
      移动接入服务器收到移动终端的登录请求后,产生新一轮会话,进入“初 始状态”,在初始状态下,只接受复杂模式的登录请求,这个请求不光是认证 用户名密码的正确性,还将获得详细的客户端和服务器能力配置等信息,其 具体信息在实施例三中有相关描述,此处不再详细讲解;移动终端登录之后 便进入“正常服务状态”。
    S702、在转发即时消息后的第一掉线时间门限T1内接收到第二移动终端 的心跳消息;
    在“正常服务状态”下,第二移动终端可能会由于移动网络信号变化而 导致临时掉线,移动接入服务器没有接收到确认的响应消息,但是只要在T1 内有接收到移动终端的激活消息,如心跳消息,即移动终端的网络恢复,就 可以继续进行通信,因此,会话状态不迁移,仍然是“正常服务状态”;
    需要说明的是,该会话状态没迁移,均为正常服务状态;若移动终端没 有掉线,也适合该状态迁移过程;由于本发明主要研究第二移动终端掉线时 的处理方法,因此此处不作具体描述。
    S703、在转发即时消息后的T1内没有接收到第二移动终端的响应消息;
    在“正常服务状态”下,如果移动接入服务器在T1内收不到移动终端的 心跳消息,会话状态从到“正常服务状态”迁移到“会话保持状态”;本发明 实施例中,设定第二掉线时间门限为T2,因此该状态的保持时间为T2-T1。
    S704、收到第二移动终端基于原会话ID的简单模式的登录;
    在“会话保持状态”下,即在此状态的保持时间T2-T1内,如果移动接 入服务器接收到第二移动终端发出的激活消息,如基于已有会话ID的简单模 式的登录请求,则会话状态迁回“正常服务状态”。
    S705、在T2-T1内没有接收到请求消息;
      在“会话保持”状态下,即在此状态的保持时间T2-T1内,如果移动接 入服务器没有接收到移动终端发出的基于已有会话ID的简单模式的登录请 求,则会话状态即迁移为“会话退出状态”;此时,移动接入服务器通知中央 服务器进行消息离线保存;在确认中央服务器进行消息离线保存后,退出所 述即时消息对应的会话,并释放缓存消息对应的缓存资源;下次第二移动终 端与第一终端进行通信时,必须从复杂模式登录来开始新的会话。
    为便于更好的实施本发明实施例的技术方案,本发明实施例还提供用于 实施上述方案的相关装置和系统。
    本发明实施例公开了一种移动接入服务器,包括:消息接收模块801、消 息发送模块802、判断模块803、临时掉线处理模块804、永久掉线处理模块805 和消息回收模块806;
      其中,消息接收缓存模块801,用于接收并缓存来自第一终端时消息;
      消息发送模块802,用于向第二移动终端转发消息接收缓存模块801接收 的即时消息;
    判断模块803,用于若在转发即时消息后的第一掉线时间门限T1内未收 到第二移动终端返回的响应消息,但在第二掉线时间门限T2内收到第二移动 终端返回的响应消息,则确定第二移动终端临时掉线,并触发临时掉线处理 模块804进行操作;若在T2内仍未收到第二移动终端返回的响应消息,则确 定第二移动终端永久掉线,并触发永久掉线处理模块805进行操作;
      临时掉线处理模块804,用于在第二移动终端临时掉线时,向第二移动终 端重新发送即时消息;
      永久掉线处理模块805,用于在第二移动终端永久掉线时,指示消息回收 模块806通知中央服务器离线保存即时消息;
      消息回收模块806,用于根据永久掉线处理模块805的指示,通知中央服 务器离线保存即时消息。
      进一步地,本实施例中的临时掉线处理模块804,还包括:第一重发单元 8041,用于当在转发即时消息后的T1内收到第二移动终端的心跳消息,则向 第二移动终端重新发送即时消息;第二重发单元8042,用于当在转发即时消 息后的T1内没有收到第二移动终端的心跳消息,但在T2收到第二移动终端 简单模式的登录请求,则向第二移动终端重新发送即时消息。
      更进一步地,本实施中的永久掉线处理模块805,包括:指示单元8051, 用于指示消息回收模块806通知中央服务器离线保存即时消息;释放单元 8052,用于确认中央服务器离线保存即时消息后,退出即时消息对应的会话, 并释放缓存即时消息对应的缓存资源;
      具体地说,在判断出第二移动终端为临时掉线后,则缓存即时消息;当 在转发即时消息后的T1内收到第二移动终端的心跳消息或其他激活消息,则 移动接入服务器将缓存的即时消息重新发送给第二移动终端,并收到第二移 动终端返回的确认缓存的即时消息收到的响应消息;
      另外,当在转发即时消息后的T1内没有收到第二移动终端的心跳消息或 其他激活消息,则将会话状态由正常服务状态迁移到会话保持状态;本实施 例中的第二掉线时间门限设定为T2,即会话保持状态的保持时间为T2-T1, 若在这T2-T1时间段内接收到第二移动终端发出的基于原会话ID简单模式 的登录请求或其他激活消息,则移动接入服务器返回登录确认消息,并将会 话状态重新迁移回正常服务状态,接着,移动接入服务器将此缓存的即时消 息重新发送给第二移动终端,接收第二移动终端返回的确认消息收到的响应消息;
      更具体地,移动接入服务器在T1内没有收到第二移动终端发出的心跳消 息或其他激活消息,则将会话状态置为会话保持状态;在会话保持状态下, 即在保持时间T2-T1时间段内仍然没有收到第二移动终端发出的基于原会话 ID的简单模式的登录请求或其他的激活消息,也就是在T2内,没有接收到 第二移动终端的返回消息,则可以确定该移动终端为永久掉线,会话状态由 会话保持状态迁移为会话退出状态;在此状态下,移动接入服务器通知中央 服务器离线保存即时消息;并且在确认中央服务器离线保存即时消息后,退 出即时消息对应的会话,并释放缓存即时消息对应的缓存资源。
      更进一步地,本发明实施例中公开的一种移动接入服务器,还包括:复 杂模式登陆模块807,用于接收第二移动终端在复杂模式下发送的登录请求, 向中央服务器转发登录请求;接收中央服务器返回的响应消息并将其转发至 第二移动终端;创建会话模块808,用于创建新的会话;离线消息收发模块 809,用于接收来自由消息回收模块806指示中央服务器离线保存的即时消息, 并将其转发至第二移动终端;接收第二移动终端发送的离线保存的即时消息 接收确认的响应消息,并向中央服务器转发。
      本文为相关专利整理,版权归专利所属公司所有,侵权请告知删除。

    展开全文
  • TCP即时通信

    2012-12-03 22:26:27
    TCP即时通信
  • 安卓即时通信学习资料教程代码,MVP架构,代码是2020年的比较新,想学习安卓的同学可以学习哦。
  • 即时通信工具通信原理
  • 即时通信系统

    2015-01-04 20:49:55
    这是一个基于java实现的即时通信系统,能简单实现通信功能
  • QQ即时通信程序

    2013-04-01 17:12:12
    QQ即时通信程序QQ即时通信程序QQ即时通信程序QQ即时通信程序QQ即时通信程序
  • fengker即时通信软件.rar fengker即时通信软件.rar fengker即时通信软件.rar fengker即时通信软件.rar fengker即时通信软件.rar fengker即时通信软件.rar
  • 银河即时通信

    2012-04-06 00:59:55
    当前的大多数即时通信软件都是基于特定平台的,并且不易搭建这样一个即时通信系统。YHIM是一个新型的即时通信系统,我们在设计和实现时赋予了很多优良的特性。例如,平台无关特性,YHIM几乎可以在当前任何OS上运行,...
  • java即时通信系统

    2011-05-26 17:01:50
    java即时通信系统java即时通信系统
  • 即时通信应用开发

    2018-04-29 10:41:14
    即时通信应用开发 介绍网络协议 udp 无握手 不进行丢包检查
  • QQ即时通信模拟

    2018-04-29 08:39:54
    C# 经典三层架构 QQ即时通信模拟(全套程序源码及数据库文件)
  • 即时通信TCP模式

    2013-07-12 17:25:21
    即时通信,TCP模式,C语言即时通信,适合新手学习的TCP连接模式
  • openfire即时通信入门学习资料,openfire是一款java语言开源的即时通信框架,方便扩展,算是比较成熟稳定的即时通信框架,插件也很多,方便框架
  • openfire为服务器的XMPP的即时通信样例
  • 即时通信编程实验

    2015-05-19 21:48:34
    lab3实验代码,即时通信编程实验,能够客户端和服务器交互,可供参考
  • 简单的即时通信软件

    2016-01-14 11:04:37
    即时通信软件 课程设计 简单的即时通信软件
  • ExtJS即时通信WebQQ

    热门讨论 2011-07-25 20:59:23
    ExtJS实现WebQQ即时通信,超级给力,下载吧! ExtJS实现WebQQ即时通信,超级给力,下载吧! ExtJS实现WebQQ即时通信,超级给力,下载吧! ExtJS实现WebQQ即时通信,超级给力,下载吧!
  • android 即时通信系统

    2016-01-12 16:08:41
    基于android的即时通信系统,开发软件android studio

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,171
精华内容 33,268
关键字:

即时通信服务有哪些