公开/公告号CN103095549A
专利类型发明专利
公开/公告日2013-05-08
原文格式PDF
申请/专利权人 腾讯科技(北京)有限公司;
申请/专利号CN201110336544.1
发明设计人 库宇;
申请日2011-10-31
分类号H04L12/58(20060101);
代理机构11270 北京派特恩知识产权代理事务所(普通合伙);
代理人迟姗;张颖玲
地址 100089 北京市海淀区海淀大街38号银科大厦16层1601-1608室
入库时间 2024-02-19 19:24:31
法律状态公告日
法律状态信息
法律状态
2017-08-15
授权
授权
2014-04-30
实质审查的生效 IPC(主分类):H04L12/58 申请日:20111031
实质审查的生效
2013-05-08
公开
公开
技术领域
本发明涉及通信技术领域,特别是指一种即时通信工具间消息传递的方法 和系统。
背景技术
网络即时通讯(IM,Instant Messenger)工具发展到今天已经被大多数的网 民所接受,成为用户必不可少的通信工具,不仅在平时的休闲娱乐中,而且在 用户的工作中得到广泛的使用。因此,用户对IM工具的易用性、稳定性、安 全性等方面提出了较高的要求。
目前,IM工具主要提供的是一对一的消息聊天模式以及一对多的群或者讨 论组的消息聊天模式。随着互联网应用的不断发展,IM工具的另一种消息聊天 模式、即微型博客(MicroBlog,简称微博)的应用也不断发展壮大,这类微型 博客的用户可以通过140个字左右的短信形式向网站群发送自己的最新动态和 想法,这种方式可以非常快速的进行信息传播与传递,实现用户消息聊天模式 从一对一、一对多到一对无穷的一种跨越。这种一对无穷的消息聊天模式意味 着一个用户可以对无穷多个用户进行消息的传播,同时一个用户也可以收听万 级以上的用户的消息,因此,微型博客的信息传递效率非常高。
在当前主流的微博客户端的应用中,用户十分希望能把有价值的微博消息 分享给自己的好友,从而可以触发与好友的进一步沟通。这里所指的好友是指 该用户在使用除微博外的其他IM工具时的好友。
目前,将微博消息传递给其他IM客户端的过程如图1所示,包括:
1、微博客户端向微博服务器上传微博消息,该消息主要包括如下内容:
发送类型,用于指示该消息是发送给用户在其他IM客户端的好友,并预 留对群的支持;
微博消息接收者的号码信息,根据发送类型的指示,该号码信息可以是好 友的号码信息也可以是群的号码信息;
微博消息的消息ID;
微博消息的纯文本信息;
指示微博客户端来源的字段。
2、微博服务器解析微博客户端上传的微博消息,并生成微博消息对应的两 个数据包发送给其他IM服务器。
之所以要生成两个数据包是因为微博消息接受者使用的其他IM客户端因 为版本的不同,对微博消息数据包的解析方式不同。根据实际需要,微博消息 对应的两个数据包分别为:
a,包含微博消息的纯文本信息的数据包;
b,包含微博消息的消息ID的数据包。
3、其他IM服务器采用通用的系统消息向其他IM客户端下发微博消息的 数据包。
根据接收者使用的其他IM客户端的版本,将对应的数据包透传给其他IM 客户端。
接收到包含微博消息的纯文本信息的数据包的其他IM客户端,直接展示 微博消息的纯文本信息;接收到包含微博消息的消息ID的数据包的其他IM客 户端,解析出微博消息的消息ID,再通过消息ID获取除纯文本信息外更为丰 富的微博消息的信息(如图片信息等)进行展示。
上述微博消息传递过程存在如下的缺陷:
1、该过程涉及到微博客户端、微博服务器、其他IM服务器三者之间的交 互,并没有充分利用微博客户端与其他IM服务器之间已经成熟的消息发送通 道,实现成本相对较大。
2、为了接收者使用的其他IM客户端各种版本的兼容,同一条微博消息需 要组装2个数据包,一个数据包中包含微博消息的纯文本的消息,另一个数据 包含微博消息的消息ID;然后需要分别向不同版本的其他IM客户端推送不同 的数据包。可见,这种方式造成了流量及资源的浪费。
发明内容
有鉴于此,本发明的主要目的在于提供一种即时通信工具间消息传递的方 法和系统,以解决不同即时通信工具间消息传递成本大、流量及资源浪费明显 的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种即时通信工具间消息传递的方法,该方法包括:
第一即时通信(IM)服务器接收第一IM客户端上传的消息;
第一IM服务器根据所述消息中的特殊标识将所述消息透传给第二IM服务 器;
所述第二IM服务器根据所述特殊标识将所述消息透传给第二IM客户端、 并展示。
所述特殊标识为Flag标识,所述Flag标识为一段buffer字节,承载所述消 息的消息ID。
所述第二IM客户端接收所述消息后,该方法还包括:
所述第二IM客户端无法识别所述特殊标识时,所述第二客户端直接展示 所述消息中携带的纯文本信息。
所述第二IM客户端接收所述消息后,该方法还包括:
所述第二IM客户端识别出所述特殊标识时,从所述特殊标识中解析出所 述消息ID,并根据所述消息ID获取所述消息对应的除纯文本信息外的其他信 息,并进行展示。
本发明还提供了一种即时通信工具间消息传递的系统,包括:第一IM客 户端、第一IM服务器、第二IM服务器和第二IM客户端,其中:
所述第一IM客户端,用于上传消息;
所述第一IM服务器,用于接收所述第一IM客户端上传的消息;还用于根 据所述消息中的特殊标识将所述消息透传给所述第二IM服务器;
所述第二IM服务器,用于根据所述特殊标识将所述消息透传给所述第二 IM客户端;
所述第二IM客户端,用于展示所述消息。
所述第一IM客户端,还用于在所述消息中设置所述特殊标识为Flag标识, 所述Flag标识为一段buffer字节,承载所述消息的消息ID。
所述第二IM客户端,还用于在无法识别所述特殊标识时,直接展示所述 消息中携带的纯文本信息。
所述第二IM客户端,还用于在识别出所述特殊标识时,从所述特殊标识 中解析出所述消息ID,并根据所述消息ID获取所述消息对应的除纯文本信息 外的其他信息,并进行展示。
本发明提供的即时通信工具间消息传递的方法和系统,在传递的消息中设 置了特殊标识,根据该特殊标识,服务器对消息进行透传而不作任何逻辑处理, 这样大大降低了成本;另外,本发明将消息的消息ID封装在特殊标识中,如此, 客户端由于版本老旧无法识别特殊标识时,就将该消息当作普通消息处理;当 客户端可以识别该特殊标识时,就可以以此拉取更多的信息进行展示,如此就 无需因为IM客户端版本兼容的问题将一条消息封装为两种数据包进行传递, 这样不仅降低了成本,也节约了资源和流量。
附图说明
图1为现有技术中将微博消息传递给其他IM客户端的示意图;
图2为本发明即时通信工具间消息传递的方法流程示意图;
图3为本发明即时通信工具间消息传递的系统结构示意图。
具体实施方式
本发明即时通信工具间消息传递的方法如图2所示包括:
步骤201,第一IM服务器接收第一IM客户端上传的消息。
该特殊标识为Flag标识,Flag标识可以为一段buffer字节,用于承载消息 的消息ID。
步骤202,第一IM服务器根据消息中的特殊标识将消息透传给第二IM服 务器。
步骤203,第二IM服务器根据特殊标识将消息透传给第二IM客户端、并 展示。
第一IM服务器和第二IM服务器根据特殊标识只对消息进行透传,并不作 任务逻辑处理。对消息的解析由第二IM客户端执行:
第二IM客户端无法识别特殊标识时,直接展示消息中携带的纯文本信息。
第二IM客户端识别出特殊标识时,从特殊标识中解析出消息ID,并根据 消息ID获取消息对应的除纯文本信息外的其他信息,并进行展示。
较佳地,上述第一IM服务器可以是微博服务器,第二IM服务器可以是除 微博服务器外的其他IM服务器。
下面以第一IM服务器为微博服务器、第二IM服务器为QQ服务器为例来 说明本发明的技术方案。将微博消息发送给QQ客户端的过程如下:
1、微博客户端向微博服务器上传需要传递的微博消息。
本发明中对该微博消息进行了扩展,基于微博客户端对消息的扩展支持特 性,可以在该微博消息中设置一个特殊标识、即Flag标识,该Flag标识可以是 一段buffer字节(8个字节),用于承载微博消息的消息ID;
除了微博消息的消息ID,该微博消息还包含如下的内容:
发送类型,用于指示该微博消息是发送给用户的QQ好友,并预留对QQ 群的支持;
微博消息接收者的号码信息,根据发送类型的指示,该号码信息可以是用 户QQ好友的QQ号码也可以是QQ群的号码;
微博消息的纯文本信息;
指示微博客户端来源的字段。
2、微博服务器接收到微博客户端上传的微博消息后,根据消息中的Flag 标识,直接将该微博消息透传给QQ服务器,不作任何逻辑处理。
3、QQ服务器接收到微博消息后,根据消息中的Flag标识,直接将该微博 消息透传给QQ客户端,不作任何逻辑处理。
4、QQ客户端解析微博消息。
如果QQ客户端由于版本问题不能识别微博消息中的Flag标识,那么QQ 客户端把该微博消息当做普通消息处理,直接显示微博消息中的纯文本信息。
如果QQ客户端可以识别微博消息中的Flag标识,那么QQ客户端解析出 Flag标识承载的微博消息的消息ID,并以此获取该微博消息对应的更为丰富的 信息来展示,具体的:
在QQ客户端打开时,有一个时机对待显示的消息体做一些特殊处理,此 时可以对接收的微博消息进行解析,判断其中是否有Flag标识;
如果没有,则QQ客户端仅展示微博消息中的纯文本信息;
如果有,则解析出Flag标识承载的微博消息的消息ID,并在微博消息中加 入一个消息ID对应的显示界面控件;
QQ客户端要显示微博消息时,创建消息ID对应的显示界面控件,此时, 需要判断本地是否有该消息ID关联的其他更为丰富的展示信息(如图片、视频 等信息);
如果本地没有,那么QQ客户端需要启动一个异步下载信息、组装信息的 进程,来下载上述其他更为丰富的展示信息,同时显示微博消息,其中其他更 为丰富的展示信息用一个空的控件代替,待下载完成、组装后,更新微博消息。
如果本地已有,那么直接显示微博消息。
为了实现上述方法,本发明还提供了一种即时通信工具间消息传递的系统, 如图3所示,包括:第一IM客户端、第一IM服务器、第二IM服务器和第二 IM客户端,其中:
第一IM客户端,用于上传消息;
第一IM服务器,用于接收第一IM客户端上传的消息;还用于根据消息中 的特殊标识将消息透传给第二IM服务器;
第二IM服务器,用于根据特殊标识将消息透传给第二IM客户端;
第二IM客户端,用于展示消息。
第一IM客户端,还用于在消息中设置特殊标识为Flag标识,Flag标识为 一段buffer字节,承载消息的消息ID。
第二IM客户端,还用于在无法识别特殊标识时,直接展示消息中携带的 纯文本信息。
第二IM客户端,还用于在识别出特殊标识时,从特殊标识中解析出消息 ID,并根据消息ID获取消息对应的除纯文本信息外的其他信息,并进行展示。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。
机译: 一种非同步消息传递网络中节点间单向时延测量的插值方法。
机译: 一种支持跨系统消息传递的企业级即时消息传递(IM)系统和方法
机译: 一种即时消息传递系统的方法和即时消息传递系统