一种客户端之间的消息转发方法和装置以及终端转让专利

申请号 : CN201910511802.1

文献号 : CN112087362B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈晓波王青李斌罗程

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例公开一种消息转发方法和装置以及终端,用于提高消息转发效率,且解决跨客户端转发时的消息兼容问题。本申请实施例提供的方法包括:消息互通装置接收第一应用程序服务器发送的转换请求,从转换请求中获取到第一消息,第一消息采用第一格式封装;将第一消息转换为第二消息,第二消息采用第二格式封装,第二格式为第二应用程序客户端能够识别的消息格式;向第一应用程序服务器发送第二消息,第二消息由第一应用程序服务器发送给第一应用程序客户端,当第一应用程序客户端跳转至第二应用程序客户端之后,第一应用程序客户端发送第二消息给第二应用程序客户端,第一应用程序客户端和第二应用程序客户端在同一个终端上运行。

权利要求 :

1.一种消息转发方法,其特征在于,包括:消息互通装置接收第一应用程序服务器发送的转换请求,并从所述转换请求中获取到第一消息,其中,所述第一消息由所述第一应用程序服务器从第一应用程序客户端获取到,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

所述消息互通装置将所述第一消息转换为第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;

所述消息互通装置向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,所述第二消息由所述第一应用程序客户端发送给所述第二应用程序客户端,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行。

2.根据权利要求1所述的方法,其特征在于,所述消息互通装置向所述第一应用程序服务器发送所述第二消息,包括:

所述消息互通装置使用预设的密钥对所述第二消息进行加密,得到加密后的第二消息;

所述消息互通装置向所述第一应用程序服务器发送所述加密后的第二消息,所述加密后的第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,所述加密后的第二消息由所述第一应用程序客户端发送给所述第二应用程序客户端。

3.根据权利要求2所述的方法,其特征在于,所述消息互通装置向所述第一应用程序服务器发送所述加密后的第二消息之后,所述方法还包括:所述消息互通装置接收第二应用程序服务器发送的解密请求,并从所述解密请求中获取到所述加密后的第二消息,其中,所述加密后的第二消息由所述第二应用程序服务器从所述第二应用程序客户端获取到;

所述消息互通装置使用所述密钥对所述加密后的第二消息进行解密,得到解密后的第二消息;

所述消息互通装置向所述第二应用程序服务器发送所述解密后的第二消息,所述解密后的第二消息由所述第二应用程序服务器发送给所述第二应用程序客户端。

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述消息互通装置将所述第一消息转换为第二消息,包括:

所述消息互通装置按照所述第一格式解析所述第一消息,得到如下参数:第一用户标识、第一时间戳、第一内容类型、第一消息内容、第一发送端名称、第一发送端地址和第一会话标识;

所述消息互通装置将所述第一用户标识转换为第二用户标识,将所述第一时间戳转换为第二时间戳,将所述第一内容类型转换为第二内容类型,将所述第一消息内容转换为第二消息内容,将所述第一发送端名称转换为第二发送端名称,将所述第一发送端地址转换为第二发送端地址,将所述第一会话标识转换为第二会话标识;

所述消息互通装置按照所述第二格式,将所述第二用户标识、所述第二时间戳、所述第二内容类型、所述第二消息内容、所述第二发送端名称、所述第二发送端地址和所述第二会话标识封装为所述第二消息。

5.根据权利要求1至3中任一项所述的方法,其特征在于,所述从所述转换请求中获取到第一消息之后,所述方法还包括:所述消息互通装置确定所述第一消息中是否包括所述第一应用程序客户端下载到的资源内容;

当所述第一消息中包括所述资源内容时,所述消息互通装置确定所述资源内容对应的下载地址;

所述消息互通装置将所述第一消息中的所述资源内容替换为所述下载地址,得到包括所述下载地址的第一消息。

6.根据权利要求1至3中任一项所述的方法,其特征在于,所述消息互通装置向所述第一应用程序服务器发送所述第二消息之后,所述方法还包括:所述消息互通装置接收第二应用程序服务器发送的第一转发请求,并从所述第一转发请求中获取到所述第二消息,其中,当所述第二应用程序客户端需要向所述第一应用程序客户端转发所述第二消息时,所述第一转发请求由所述第二应用程序客户端发送给所述第二应用程序服务器;

所述消息互通装置向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端。

7.根据权利要求1至3中任一项所述的方法,其特征在于,所述消息互通装置向所述第一应用程序服务器发送所述第二消息之后,所述方法还包括:所述消息互通装置接收所述第二应用程序服务器发送的第二转发请求,并从所述第二转发请求中获取到所述第二消息,其中,当所述第二应用程序客户端需要向所述第一应用程序客户端和第三应用程序客户端分别转发所述第二消息时,所述第二转发请求由所述第二应用程序客户端发送给所述第二应用程序服务器;

所述消息互通装置向所述第一应用程序服务器和所述第二应用程序服务器分别发送所述第二消息,其中,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,且所述第二消息由所述第二应用程序服务器发送给所述第三应用程序客户端,所述第二应用程序服务器为所述第三应用程序客户端提供后台服务。

8.一种消息转发方法,其特征在于,包括:第一应用程序客户端确定需要转发的第一消息,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

所述第一应用程序客户端向第一应用程序服务器发送转换请求,所述转换请求携带所述第一消息,所述转换请求由所述第一应用程序服务器发送给消息互通装置,所述消息互通装置将所述第一消息转换为第二消息,并向所述第一应用程序服务器发送所述第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;

所述第一应用程序客户端接收所述第一应用程序服务器发送的所述第二消息;

当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,所述第一应用程序客户端向所述第二应用程序客户端发送所述第二消息,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行。

9.一种消息转发方法,其特征在于,包括:当第一应用程序客户端跳转至第二应用程序客户端之后,所述第二应用程序客户端接收所述第一应用程序客户端发送的第二消息,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行;其中,所述第二消息由消息互通装置对第一消息进行转换后,通过第一应用程序服务器发送给所述第一应用程序客户端,所述第一消息由所述第一应用程序服务器从所述第一应用程序客户端获取到,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

所述第二应用程序客户端按照第二格式解析所述第二消息,所述第二格式为第二应用程序客户端能够识别的消息格式。

10.根据权利要求9所述的方法,其特征在于,当所述第二应用程序客户端接收到加密后的第二消息时,所述方法还包括:所述第二应用程序客户端向第二应用程序服务器发送解密请求,所述解密请求由所述第二应用程序服务器发送给所述消息互通装置,所述消息互通装置对所述加密后的第二消息进行解密,并向所述第二应用程序服务器发送所述解密后的第二消息;

所述第二应用程序客户端接收所述第二应用程序服务器发送的所述解密后的第二消息。

11.根据权利要求9或10所述的方法,其特征在于,所述第二应用程序客户端按照所述第二格式解析所述第二消息之后,所述方法还包括:当所述第二应用程序客户端需要向所述第一应用程序客户端转发所述第二消息时,所述第二应用程序客户端向第二应用程序服务器发送第一转发请求,所述第一转发请求携带所述第二消息,所述第一转发请求由所述第二应用程序服务器发送给所述消息互通装置,然后所述第二消息由所述消息互通装置通过第一应用程序服务器发送给所述第一应用程序客户端。

12.一种消息互通装置,其特征在于,包括:接收模块,用于接收第一应用程序服务器发送的转换请求;

处理模块,用于从所述转换请求中获取到第一消息,其中,所述第一消息由所述第一应用程序服务器从第一应用程序客户端获取到,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

所述处理模块,还用于将所述第一消息转换为第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;

发送模块,用于向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,所述第二消息由所述第一应用程序客户端发送给所述第二应用程序客户端,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行。

13.一种应用程序客户端,其特征在于,所述应用程序客户端具体为第一应用程序客户端,所述第一应用程序客户端包括:处理模块,用于确定需要转发的第一消息,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

发送模块,用于向第一应用程序服务器发送转换请求,所述转换请求携带所述第一消息,所述转换请求由所述第一应用程序服务器发送给消息互通装置,所述消息互通装置将所述第一消息转换为第二消息,并向所述第一应用程序服务器发送所述第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;

接收模块,用于接收所述第一应用程序服务器发送的所述第二消息;

所述发送模块,还用于当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,向所述第二应用程序客户端发送所述第二消息,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行。

14.一种应用程序客户端,其特征在于,所述应用程序客户端具体为第二应用程序客户端,所述第二应用程序客户端包括:接收模块,用于当第一应用程序客户端跳转至所述第二应用程序客户端之后,接收所述第一应用程序客户端发送的第二消息,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端上运行;其中,所述第二消息由消息互通装置对第一消息进行转换后,通过第一应用程序服务器发送给所述第一应用程序客户端,所述第一消息由所述第一应用程序服务器从所述第一应用程序客户端获取到,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;

处理模块,用于按照第二格式解析所述第二消息,所述第二格式为第二应用程序客户端能够识别的消息格式。

15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至7,或者8,或者9至11中任意一项所述的方法。

说明书 :

一种客户端之间的消息转发方法和装置以及终端

技术领域

[0001] 本申请实施例涉及计算机技术领域,尤其涉及一种消息转发方法和装置以及终端。

背景技术

[0002] 目前,人们可以操作手机、平板或笔记本电脑等终端设备上安装的一种或者多种的应用程序,终端设备上安装的应用程序具有多种,例如可以安装企业微信和微信。而应用
程序之间也可以进行消息的转发。
[0003] 目前,终端设备上的应用程序之间进行消息转发时,可以基于一个应用程序的开放接口组件来完成,例如微信应用程序的OpenSDK接口组件提供聊天记录分享的接口能力,
企业微信应用程序可以按OpenSDK里面的接口能力,将聊天记录里面的各种消息类型数据
封装成对应的格式传递给微信接口。另外,终端设备上的企业微信应用程序里面的会话消
息,可以通过“多选—转发到微信”分享到微信应用程序,该会话消息可以是企业微信应用
程序里产生的聊天记录,该聊天记录是以PDF文件格式的形式承载。
[0004] 前述的通过一个应用程序的开发接口组件进行消息转发时,存在扩展性差的问题,若需要转发的消息类型有扩展时,每次都需要更新开发接口组件,降低了消息转发的效
率。另外,因为PDF文件格式承载的信息比较有限,使得企业微信应用程序和微信应用程序
之间的沟通体验不好。PDF文件方式进行浏览查看时,跟微信应用程序里面的原生聊天记录
的显示方式有很大的差距,无法实现消息内容的完全兼容。

发明内容

[0005] 本申请实施例提供了一种消息转发方法和装置以及终端,用于提高消息转发的效率,且解决了跨客户端转发时的消息兼容问题。
[0006] 本申请实施例提供以下技术方案:
[0007] 一方面,本申请实施例提供一种消息转发方法,包括:
[0008] 消息互通装置接收第一应用程序服务器发送的转换请求,并从所述转换请求中获取到第一消息,其中,所述第一消息由所述第一应用程序服务器从第一应用程序客户端获
取到,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识
别的消息格式;
[0009] 所述消息互通装置将所述第一消息转换为第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;
[0010] 所述消息互通装置向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户端
跳转至所述第二应用程序客户端之后,所述第二消息由所述第一应用程序客户端发送给所
述第二应用程序客户端,所述第一应用程序客户端和所述第二应用程序客户端在同一个终
端上运行。
[0011] 一方面,本申请实施例还提供一种消息转发方法,包括:
[0012] 第一应用程序客户端确定需要转发的第一消息,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0013] 所述第一应用程序客户端向第一应用程序服务器发送转换请求,所述转换请求携带所述第一消息,所述转换请求由所述第一应用程序服务器发送给消息互通装置,所述消
息互通装置将所述第一消息转换为第二消息,并向所述第一应用程序服务器发送所述第二
消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的
消息格式;
[0014] 所述第一应用程序客户端接收所述第一应用程序服务器发送的所述第二消息;
[0015] 当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,所述第一应用程序客户端向所述第二应用程序客户端发送所述第二消息,所述第一应用程序客户端和所
述第二应用程序客户端在同一个终端上运行。
[0016] 一方面,本申请实施例还提供一种消息转发方法,包括:
[0017] 当第一应用程序客户端跳转至第二应用程序客户端之后,所述第二应用程序客户端接收所述第一应用程序客户端发送的第二消息,所述第一应用程序客户端和所述第二应
用程序客户端在同一个终端上运行;其中,所述第二消息由消息互通装置对第一消息进行
转换后,通过第一应用程序服务器发送给所述第一应用程序客户端,所述第一消息采用第
一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0018] 所述第二应用程序客户端按照所述第二格式解析所述第二消息,所述第二格式为第二应用程序客户端能够识别的消息格式。
[0019] 一方面,本申请实施例还提供一种消息互通装置,包括:
[0020] 接收模块,用于接收第一应用程序服务器发送的转换请求;
[0021] 处理模块,用于从所述转换请求中获取到第一消息,其中,所述第一消息由所述第一应用程序服务器从第一应用程序客户端获取到,所述第一消息采用第一格式封装,所述
第一格式为所述第一应用程序客户端能够识别的消息格式;
[0022] 所述处理模块,还用于将所述第一消息转换为第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;
[0023] 发送模块,用于向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户端跳
转至所述第二应用程序客户端之后,所述第二消息由所述第一应用程序客户端发送给所述
第二应用程序客户端,所述第一应用程序客户端和所述第二应用程序客户端在同一个终端
上运行。
[0024] 在前述方面中,消息互通装置的组成模块还可以执行前述一方面以及各种可能的实现方式中所描述的步骤,详见对前述一方面以及各种可能的实现方式中的说明。
[0025] 一方面,本申请实施例还提供一种应用程序客户端,所述应用程序客户端具体为第一应用程序客户端,所述第一应用程序客户端包括:
[0026] 处理模块,用于确定需要转发的第一消息,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0027] 发送模块,用于向第一应用程序服务器发送转换请求,所述转换请求携带所述第一消息,所述转换请求由所述第一应用程序服务器发送给消息互通装置,所述消息互通装
置将所述第一消息转换为第二消息,并向所述第一应用程序服务器发送所述第二消息,所
述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格
式;
[0028] 接收模块,用于接收所述第一应用程序服务器发送的所述第二消息;
[0029] 所述发送模块,还用于当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,向所述第二应用程序客户端发送所述第二消息,所述第一应用程序客户端和所述
第二应用程序客户端在同一个终端上运行。
[0030] 在前述方面中,第一应用程序客户端的组成模块还可以执行前述一方面以及各种可能的实现方式中所描述的步骤,详见对前述一方面以及各种可能的实现方式中的说明。
[0031] 一方面,本申请实施例还提供一种应用程序客户端,所述应用程序客户端具体为第二应用程序客户端,所述第二应用程序客户端包括:
[0032] 接收模块,用于当第一应用程序客户端跳转至所述第二应用程序客户端之后,接收所述第一应用程序客户端发送的第二消息,所述第一应用程序客户端和所述第二应用程
序客户端在同一个终端上运行;其中,所述第二消息由消息互通装置对第一消息进行转换
后,通过第一应用程序服务器发送给所述第一应用程序客户端,所述第一消息采用第一格
式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0033] 处理模块,用于按照所述第二格式解析所述第二消息,所述第二格式为第二应用程序客户端能够识别的消息格式。
[0034] 在前述方面中,第二应用程序客户端的组成模块还可以执行前述一方面以及各种可能的实现方式中所描述的步骤,详见对前述一方面以及各种可能的实现方式中的说明。
[0035] 另一方面,本申请实施例提供一种终端,该终端包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得终端执行如前述一方面中任一项的方法。
具体的,该终端具体可以是前述的消息互通转置、第一应用程序客户端、第二应用程序客户
端。
[0036] 另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
[0037] 在本申请实施例中,第一应用程序服务器从第一应用程序客户端获取到第一消息,然后发送转换请求给消息互通装置,消息互通装置从转换请求中获取到第一消息,第一
消息采用第一格式封装,第一格式为第一应用程序客户端能够识别的消息格式,消息互通
装置将第一消息转换为第二消息,第二消息采用第二格式封装,第二格式为第二应用程序
客户端能够识别的消息格式,消息互通装置向第一应用程序服务器发送第二消息,第一应
用程序服务器将第二消息发送给第一应用程序客户端,当第一应用程序客户端跳转至第二
应用程序客户端之后,第一应用程序客户端将第二消息发送给第二应用程序客户端,第一
应用程序客户端和第二应用程序客户端在同一个终端上运行。本申请实施例中消息互通装
置具有消息格式转换功能,从而可以将第一消息转换成第二消息,在同一个终端上第一应
用程序客户端跳转至第二应用程序客户端之后,第二应用程序客户端收到了第一应用程序
客户端发送的第二消息,因此第二应用程序客户端可以按照第二应用程序客户端能够识别
的第二格式解析出第二消息,由于第一应用程序客户端发送的第二消息是第二应用程序客
户端能够直接识别的消息格式,因此提高消息转发的效率,且解决了跨客户端转发时的消
息兼容问题。

附图说明

[0038] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施
例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
[0039] 图1a为本申请实施例提供的一种消息转发系统的组成结构示意图;
[0040] 图1b为本申请实施例提供的另一种消息转发系统的组成结构示意图;
[0041] 图2为本申请实施例提供的一种消息转发方法的交互流程示意图;
[0042] 图3为本申请实施例提供的一种消息转发方法的交互流程示意图;
[0043] 图4为本申请实施例提供的一种消息转发方法的交互流程示意图;
[0044] 图5为本申请实施例提供的一种消息转发方法的交互流程示意图;
[0045] 图6为本申请实施例提供的消息转发系统在聊天记录转发场景的系统架构示意图;
[0046] 图7为本申请实施例提供的聊天记录转换和转发的实现流程示意图;
[0047] 图8为本申请实施例提供的消息格式转换的示意图;
[0048] 图9a为本申请实施例提供的企业微信客户端生成的聊天记录的示意图;
[0049] 图9b为本申请实施例提供的聊天记录转发入口的效果示意图;
[0050] 图10为本申请实施例提供的聊天记录转发跳转微信客户端后的效果示意图;
[0051] 图11a为本申请实施例提供的聊天记录转发后微信客户端侧的效果示意图;
[0052] 图11b为本申请实施例提供的聊天记录转发后微信客户端侧的聊天内容示意图;
[0053] 图12a为本申请实施例提供的聊天记录转发后企业微信客户端侧的效果示意图;
[0054] 图12b为本申请实施例提供的聊天记录转发后企业微信客户端侧的聊天内容示意图;
[0055] 图13a为本申请实施例提供的微信客户端侧的包含小程序的聊天记录转发后的效果示意图;
[0056] 图13b为本申请实施例提供的企业微信客户端侧的包含小程序的聊天记录转发后的效果示意图;
[0057] 图14为本申请实施例提供的一种消息互通装置的组成结构示意图;
[0058] 图15为本申请实施例提供的一种第一应用程序客户端的组成结构示意图;
[0059] 图16为本申请实施例提供的一种第二应用程序客户端的组成结构示意图;
[0060] 图17为本申请实施例提供的消息转发方法应用于终端的组成结构示意图;
[0061] 图18为本申请实施例提供的消息转发方法应用于服务器的组成结构示意图。

具体实施方式

[0062] 本申请实施例提供了一种消息转发方法和装置以及终端,用于提高消息转发的效率,且解决了跨客户端转发时的消息兼容问题。
[0063] 为使得本申请实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面
所描述的实施例仅仅是本申请实施例一部分实施例,而非全部实施例。基于本申请实施例
中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本申请实施例保护的范
围。
[0064] 本申请实施例的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产
品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或
设备固有的其它单元。
[0065] 首先介绍本申请实施例提供的消息转发方法应用的系统架构,如图1a所示,本申请实施例提供的消息转发系统的组成结构示意图。消息转发系统1000可以包括:消息互通
装置1001、第一应用程序服务器1002、第一应用程序客户端1003、第二应用程序客户端
1004。其中,消息互通装置1001可以和第一应用程序服务器1002进行通信,第一应用程序服
务器1002是第一应用程序客户端1003的后台服务器,第一应用程序服务器1002用于为第一
应用程序客户端1003提供后台支持服务。例如,第一应用程序客户端1003是企业微信客户
端时,第一应用程序服务器1002可以是企业微信服务器(即企业微信后台)。第一应用程序
客户端1003需要通过第一应用程序服务器1002,才能和消息互通装置1001进行通信。本申
请实施例中消息互通装置1001可以部署在一个实体设备上,也可以部署在云端,对于消息
互通装置1001的部署方式不做限定。
[0066] 其中,消息互通装置1001可以用于对不同应用程序客户端所能支持的消息格式进行转换,例如,消息互通装置1001具有异构系统之间消息格式转换的功能,即具有可以在异
构系统中消息格式转换的中枢能力,例如消息互通装置1001可以用于在两个应用程序客户
端所能支持的消息格式进行转换。在本申请实施例中,消息互通装置1001可以通过终端或
者服务器的形式来实现,具体的,消息互通装置1001可以是消息互通系统(Instant 
Message Union,IMUnion),消息互通装置1001也可以称为互通后台,或者称为IMUnion后
台,此处不做限定。
[0067] 第一应用程序客户端1003、第二应用程序客户端1004可以是分别使用不同应用程序(Application,APP)的客户端,第一应用程序客户端1003、第二应用程序客户端1004分别
运行不同的应用程序,例如第一应用程序客户端1003可以是一种办公通讯软件,第二应用
程序客户端1004可以是一种社交即时通讯软件。具体的,第一应用程序客户端1003可以是
企业微信,第二应用程序客户端1004可以是微信。本申请实施例中,第一应用程序客户端
1003、第二应用程序客户端1004分别支持各自应用程序所识别的消息类型格式,例如第一
应用程序客户端1003支持的消息类型格式是protobuf编码的格式,第二应用程序客户端
1004支持的消息类型格式是json串编码的格式。
[0068] 在本申请实施例中,第一应用程序客户端和第二应用程序客户端在同一个终端上运行,例如同一个终端上可以同时安装有企业微信客户端和微信客户端,用户可以在终端
上进行跳转控制操作,以控制哪个应用程序客户端显示在终端的主界面上。
[0069] 需要说明的是,对于第一应用程序客户端1003、第二应用程序客户端1004分别使用的应用程序类型,和第一应用程序客户端1003、第二应用程序客户端1004各自支持的消
息格式类型不做限定。
[0070] 如图1b所示,为本申请实施例提供的另一种消息转发系统的组成结构示意图。消息转发系统1000可以包括:消息互通装置1001、第一应用程序服务器1002、第一应用程序客
户端1003、第二应用程序客户端1004、第二应用程序服务器1005。其中,消息互通装置1001
可以和第二应用程序服务器1005进行通信,第二应用程序服务器1005是第二应用程序客户
端1004的后台服务器,第二应用程序服务器1005用于为第二应用程序客户端1004提供后台
支持服务。例如,第二应用程序客户端1004是微信客户端时,第二应用程序服务器1005可以
是微信服务器(即微信后台)。第二应用程序客户端1004需要通过第二应用程序服务器
1005,才能和消息互通装置1001进行通信。
[0071] 基于上述的消息转发系统,接下来介绍本申请实施例提供的消息转发方法,请参阅图2所示,本申请实施例一个实施例提供的消息转发方法,可以包括如下步骤:
[0072] 201、第一应用程序客户端确定需要转发的第一消息,第一消息采用第一格式封装,第一格式为第一应用程序客户端能够识别的消息格式。
[0073] 在本申请实施例中,第一格式为第一应用程序客户端能够识别的消息格式,例如当第一应用程序客户端是企业微信客户端时,第一格式可以是protobuf编码的格式。第一
应用程序客户端首先获取需要转发的消息,将需要转发的消息称为第一消息,则第一消息
采用第一应用程序客户端能够识别的第一格式进行封装。其中,第一消息可以是如下消息
类型中的至少一种:聊天记录、文本、图片、视频、文件、地理位置、链接、小程序等,第一消息
可是如上消息类型中的一种或者几种或者全部,具体取决于用户需要转发哪些消息。对于
第一应用程序客户端需要转发的第一消息的具体类型,此处不做限定。
[0074] 202、第一应用程序客户端向第一应用程序服务器发送转换请求,转换请求携带第一消息,转换请求由第一应用程序服务器发送给消息互通装置,消息互通装置将第一消息
转换为第二消息,并向第一应用程序服务器发送第二消息,第二消息采用第二格式封装,第
二格式为第二应用程序客户端能够识别的消息格式。
[0075] 在本申请实施例中,第一应用程序客户端获取到第一消息之后,第一应用程序客户端需要转发该第一消息时,第一应用程序客户端生成转发请求,第一应用程序客户端通
过第一应用程序服务器向消息互通装置发送该转换请求,该转换请求携带第一消息。
[0076] 在本申请的一些实施例中,第一应用程序客户端在发送转发请求之前,第一应用程序客户端还需要对第一消息进行限制性检查,以判断是否能够发送该转发请求,举例说
明如下,第一应用程序客户端先对第一消息进行各种限制检查,比如包含的文件大小是否
超过限制(因为第二应用程序客户端的文件消息有大小的限制)、消息类型是否能被转发出
去(例如语音、红包等,还有一些第一应用程序客户端特有的消息类型),如果检查后发现条
件都满足,则第一应用程序客户端发送转发请求,否则不发送该转发请求。
[0077] 211、消息互通装置接收第一应用程序服务器发送的转换请求,并从转换请求中获取到第一消息,其中,第一消息由第一应用程序服务器从第一应用程序客户端获取到,第一
消息采用第一格式封装,第一格式为第一应用程序客户端能够识别的消息格式。
[0078] 在本申请实施例中,消息互通装置是专用于不同应用程序客户端之间的消息格式转换,消息互通装置通过第一应用程序服务器接收到第一应用程序客户端发送的转换请
求。
[0079] 212、消息互通装置将第一消息转换为第二消息,第二消息采用第二格式封装,第二格式为第二应用程序客户端能够识别的消息格式。
[0080] 在本申请实施例中,消息互通装置具有消息格式转换能力,当消息互通装置获取到第一消息之后,消息互通装置可以对第一消息进行消息格式转换,将转换后的第一消息
称为第二消息,第一消息采用第一格式封装,由于第二应用程序客户端无法完全识别该第
一格式,或者第二应用程序客户端无法按照第二应用程序客户端的要求来识别该第一格
式,因此消息互通装置可以在第一消息被转发之前,就完成对第一消息的格式转换,例如将
第一消息转换为第二消息,第二消息采用第二格式封装,第二格式为第二应用程序客户端
能够识别的消息格式,因此第二应用程序客户端不再需要识别第一格式的第一消息。
[0081] 在本申请实施例中,消息互通装置可以预先通过和不同应用程序服务器的交互,以获取到不同应用程序客户端所能够识别的消息格式,因此消息互通装置可以完成对不同
消息类型的格式转换。
[0082] 在本申请的一些实施例中,步骤212消息互通装置将第一消息转换为第二消息,包括:
[0083] 消息互通装置按照第一格式解析第一消息,得到如下参数:第一用户标识、第一时间戳、第一内容类型、第一消息内容、第一发送端名称、第一发送端地址和第一会话标识;
[0084] 消息互通装置将第一用户标识转换为第二用户标识,将第一时间戳转换为第二时间戳,将第一内容类型转换为第二内容类型,将第一消息内容转换为第二消息内容,将第一
发送端名称转换为第二发送端名称,将第一发送端地址转换为第二发送端地址,将第一会
话标识转换为第二会话标识;
[0085] 消息互通装置按照第二格式,将第二用户标识、第二时间戳、第二内容类型、第二消息内容、第二发送端名称、第二发送端地址和第二会话标识封装为第二消息。
[0086] 其中,消息互通装置对第一消息进行消息格式转换。例如第一消息中可以包括如下信息中的至少一种:第一用户标识、第一时间戳、第一内容类型、第一消息内容、第一发送
端名称、第一发送端地址和第一会话标识。具体的,第一用户标识是在第一应用程序客户端
上运行的应用程序的用户标识,第一时间戳是第一消息的生成时间,第一内容类型是指第
一消息包括的消息内容的类型,第一消息内容是指第一消息所包括的具体消息内容,例如
可以是聊天记录、文本、图片、视频、文件、地理位置、链接、小程序等,第一发送端名称是指
操作第一应用程序客户端的用户发送侧的名称,第一发送端地址是指第一发送端名称对应
的发送地址,第一会话标识用于标识第一消息对应的会话。
[0087] 消息互通装置在确定出第一消息所包括的具体消息字段之后,可以针对每个消息字段进行消息格式转换,例如将第一用户标识转换为第二用户标识,将第一时间戳转换为
第二时间戳,将第一内容类型转换为第二内容类型,将第一消息内容转换为第二消息内容,
将第一发送端名称转换为第二发送端名称,将第一发送端地址转换为第二发送端地址,将
第一会话标识转换为第二会话标识。对于第二用户标识、第二时间戳、第二内容类型、第二
消息内容、第二发送端名称、第二发送端地址和第二会话标识所分别指示的字段名称,此处
不做限定,可以结合具体场景来确定。
[0088] 消息互通装置在完成消息格式转换之后,再使用第二应用程序客户端能够识别的第二格式进行格式封装,则按照第二格式,将第二用户标识、第二时间戳、第二内容类型、第
二消息内容、第二发送端名称、第二发送端地址和第二会话标识封装为第二消息。由于第二
消息采用第二格式封装,因此第二应用程序客户端不需要再进行格式转换,就能够识别出
第二消息。
[0089] 在本申请的一些实施例中,步骤211从转换请求中获取到第一消息之后,本申请实施例提供的方法还包括:
[0090] 消息互通装置确定第一消息中是否包括第一应用程序客户端下载到的资源内容;
[0091] 当第一消息中包括资源内容时,消息互通装置确定资源内容对应的下载地址;
[0092] 消息互通装置将第一消息中的资源内容替换为下载地址,得到包括下载地址的第一消息。
[0093] 具体的,第一消息中可以包括第一应用程序客户端下载到的资源内容,其中资源内容可以通过网络下载到,然后第一应用程序客户端可以将该资源内容加入到第一消息
中,若第一消息中包括第一应用程序客户端下载到的资源内容时,消息互通装置确定资源
内容对应的下载地址,该下载地址是指资源内容的可下载路径,例如下载地址可以是一个
统一资源定位符(Uniform Resource Locator,URL)。消息互通装置将第一消息中的资源内
容替换为下载地址,得到包括下载地址的第一消息,即在第一消息不需要再携带资源内容
本身,而是以一个下载地址来代替,从而可以极大的减少第一消息的大小,从而提高消息传
输效率。举例说明如下,第一消息可以是聊天记录,对于聊天记录里面的视频或文件数据,
也并不需要真正包含具体的内容,只需要传递对应的下载URL即可,就能传递较大的文件
了,这样消息传输的扩展性和安全性会得到进一步提高。
[0094] 进一步的,在第一消息中的资源内容被替换为下载地址的情况下,步骤212消息互通装置将第一消息转换为第二消息,包括:
[0095] 消息互通装置将包括下载地址的第一消息转换为第二消息。
[0096] 其中,当第一消息中的资源内容被替换为下载地址时,第一消息中不携带资源内容,而是携带下载地址,消息互通装置可以将包括下载地址的第一消息转换为第二消息,例
如消息互通装置可以将第一消息中的下载地址转换为第二应用程序客户端能够识别的消
息格式,从而便于第二应用程序客户端根据该下载地址可以获取到相应的资源内容。
[0097] 213、消息互通装置向第一应用程序服务器发送第二消息,第二消息由第一应用程序服务器发送给第一应用程序客户端,当第一应用程序客户端跳转至第二应用程序客户端
之后,第二消息由第一应用程序客户端发送给第二应用程序客户端,第一应用程序客户端
和第二应用程序客户端在同一个终端上运行。
[0098] 在本申请实施例中,消息互通装置通过消息格式转换,得到第二消息之后,消息互通装置可以通过第一应用程序服务器向第一应用程序客户端发送第二消息,则第二消息由
第一应用程序服务器发送给第一应用程序客户端。
[0099] 在本申请的一些实施例中,如图3所示,步骤213消息互通装置向第一应用程序服务器发送第二消息,包括:
[0100] 2131、消息互通装置使用预设的密钥对第二消息进行加密,得到加密后的第二消息;
[0101] 2132、消息互通装置向第一应用程序服务器发送加密后的第二消息,加密后的第二消息由第一应用程序服务器发送给第一应用程序客户端,当第一应用程序客户端跳转至
第二应用程序客户端之后,加密后的第二消息由第一应用程序客户端发送给第二应用程序
客户端。
[0102] 其中,消息互通装置通过消息格式转换,得到第二消息之后,还可以对该第二消息进行加密,以提高消息传输的安全性。消息互通装置使用预设的密钥对第二消息进行加密,
得到加密后的第二消息,本申请实施例中不限定所采用的加解密算法以及相应的密钥。消
息互通装置向第一应用程序服务器发送加密后的第二消息,则加密后的第二消息由第一应
用程序服务器发送给第一应用程序客户端。本申请实施例中,对第二消息的加密操作由消
息互通装置来实现,不需要在第一应用程序客户端一侧进行加密,因此第一应用程序客户
端不需要存储密钥,从而简化了第一应用程序客户端的配置。
[0103] 在本申请的一些实施例中,如图3所示,步骤2132消息互通装置向第一应用程序服务器发送加密后的第二消息之后,本申请实施例提供的方法还包括:
[0104] 214、消息互通装置接收第二应用程序服务器发送的解密请求,并从解密请求中获取到加密后的第二消息,其中,加密后的第二消息由第二应用程序服务器从第二应用程序
客户端获取到;
[0105] 215、消息互通装置使用密钥对加密后的第二消息进行解密,得到解密后的第二消息;
[0106] 216、消息互通装置向第二应用程序服务器发送解密后的第二消息,解密后的第二消息由第二应用程序服务器发送给第二应用程序客户端。
[0107] 其中,消息互通装置通过消息格式转换,得到第二消息之后,还可以对该第二消息进行加密,以提高消息传输的安全性。消息互通装置使用预设的密钥对第二消息进行加密,
得到加密后的第二消息。消息互通装置向第一应用程序服务器发送加密后的第二消息,则
加密后的第二消息由第一应用程序服务器发送给第一应用程序客户端。则第一应用程序客
户端收到的是加密后的第二消息,第一应用程序客户端发送给第二应用程序客户端的是加
密后的第二消息,通过对第二消息的加密传输,保证了消息传输的安全性。由于第二应用程
序客户端收到的是加密后的第二消息,则第二应用程序客户端可以通过第二应用程序服务
器向消息互通装置请求解密该第二消息,消息互通装置由于存储有密钥,因此可以完成对
第二消息的解密,消息互通装置还可以通过第二应用程序服务器向第二应用程序客户端发
送解密后的第二消息,第二应用程序客户端可以直接识别出该解密后的第二消息。本申请
实施例中,对第二消息的加解密操作由消息互通装置来实现,不需要在第一应用程序客户
端一侧进行加密,也不需要在第二应用程序客户端一侧进行解密,因此第一应用程序客户
端和第一应用程序客户端都不需要存储密钥,从而简化了第一应用程序客户端和第二应用
程序客户端的配置,也提高了消息安全传输的效率。
[0108] 在本申请的一些实施例中,如图4所示,步骤213消息互通装置向第一应用程序服务器发送第二消息之后,本申请实施例提供的方法还包括:
[0109] 217、消息互通装置接收第二应用程序服务器发送的第一转发请求,并从第一转发请求中获取到第二消息,其中,当第二应用程序客户端需要向第一应用程序客户端转发第
二消息时,第一转发请求由第二应用程序客户端发送给第二应用程序服务器;
[0110] 218、消息互通装置向第一应用程序服务器发送第二消息,第二消息由第一应用程序服务器发送给第一应用程序客户端。
[0111] 其中,第二应用程序客户端从第一应用程序客户端接收到第二消息之后,第二应用程序客户端还可以对该第二消息进行转发操作。例如第二应用程序客户端可以进行跨客
户端类型的转发操作,当第二应用程序客户端需要向第一应用程序客户端转发第二消息
时,第一转发请求由第二应用程序客户端发送给第二应用程序服务器。消息互通装置接收
第二应用程序服务器发送的第一转发请求,消息互通装置通过第一应用程序服务器向第一
应用程序客户端转发该第二消息,从而使得第一应用程序客户端可以接收到第二应用程序
客户端转发的第二消息,实现跨客户端类型的消息转发操作。
[0112] 在本申请的一些实施例中,如图5所示,步骤213消息互通装置向第一应用程序服务器发送第二消息之后,本申请实施例提供的方法还包括:
[0113] 219、消息互通装置接收第二应用程序服务器发送的第二转发请求,并从第二转发请求中获取到第二消息,其中,当第二应用程序客户端需要向第一应用程序客户端和第三
应用程序客户端分别转发第二消息时,第二转发请求由第二应用程序客户端发送给第二应
用程序服务器;
[0114] 210、消息互通装置向第一应用程序服务器和第二应用程序服务器分别发送第二消息,其中,第二消息由第一应用程序服务器发送给第一应用程序客户端,且第二消息由第
二应用程序服务器发送给第三应用程序客户端,第二应用程序服务器为第三应用程序客户
端提供后台服务。
[0115] 其中,第二应用程序客户端从第一应用程序客户端接收到第二消息之后,第二应用程序客户端还可以对该第二消息进行转发操作。例如第二应用程序客户端可以进行跨客
户端类型的转发操作和同类型客户端的群内转发操作,当第二应用程序客户端需要向第一
应用程序客户端和第三应用程序客户端分别转发第二消息时,第二转发请求由第二应用程
序客户端发送给第二应用程序服务器。消息互通装置接收第二应用程序服务器发送的第二
转发请求,消息互通装置通过第一应用程序服务器向第一应用程序客户端转发该第二消
息,从而使得第一应用程序客户端可以接收到第二应用程序客户端转发的第二消息,实现
跨客户端类型的消息转发操作。且第二消息由第二应用程序服务器发送给第三应用程序客
户端,第二应用程序服务器为第三应用程序客户端提供后台服务,且第二应用程序服务器
为第二应用程序客户端提供后台服务,例如第二应用程序客户端和第三应用程序客户端属
于同一个群组时,从而使得第三应用程序客户端可以接收到第二应用程序客户端转发的第
二消息,实现同类型客户端的群内转发操作。
[0116] 203、第一应用程序客户端接收第一应用程序服务器发送的第二消息。
[0117] 在本申请实施例中,消息互通装置可以通过第一应用程序服务器向第一应用程序客户端发送第二消息,则第二消息由第一应用程序服务器发送给第一应用程序客户端,第
一应用程序客户端可以接收到消息互通装置转换得到的第二消息。
[0118] 204、当第一应用程序客户端跳转至第二应用程序客户端之后,第一应用程序客户端向第二应用程序客户端发送第二消息,第一应用程序客户端和第二应用程序客户端在同
一个终端上运行。
[0119] 在本申请实施例中,当用户需要将消息从第一应用程序客户端转发至第二应用程序客户端时,用户可操作终端实现第一应用程序客户端跳转至第二应用程序客户端,第一
应用程序客户端向第二应用程序客户端发送第二消息,由于第二应用程序客户端从第一应
用程序客户端直接收到了第二消息,而第二消息采用第二格式封装,第二格式为第二应用
程序客户端能够识别的消息格式,因此第二应用程序客户端不再需要识别第一格式的第一
消息,二应用程序客户端可以直接解析第二消息,因此本申请实施例提高了消息转发的效
率。
[0120] 在本申请的一些实施例中,步骤203第一应用程序客户端接收第一应用程序服务器发送的第二消息,包括:第一应用程序客户端接收第一应用程序服务器发送的加密后的
第二消息。
[0121] 其中,若消息互通装置对第二消息进行了加密,且消息互通装置发送给第一应用程序客户端的是加密后的第二消息,则第一应用程序客户端收到的是加密后的第二消息,
通过对第二消息的加密传输,保证了消息传输的安全性。
[0122] 步骤204第一应用程序客户端向第二应用程序客户端发送第二消息,包括:第一应用程序客户端向第二应用程序客户端发送加密后的第二消息。
[0123] 其中,若消息互通装置对第二消息进行了加密,且消息互通装置发送给第一应用程序客户端的是加密后的第二消息,则第一应用程序客户端收到的是加密后的第二消息,
第一应用程序客户端发送给第二应用程序客户端的是加密后的第二消息,通过对第二消息
的加密传输,保证了消息传输的安全性。
[0124] 221、当第一应用程序客户端跳转至第二应用程序客户端之后,第二应用程序客户端接收第一应用程序客户端发送的第二消息,第一应用程序客户端和第二应用程序客户端
在同一个终端上运行;其中,第二消息由消息互通装置对第一消息进行转换后,通过第一应
用程序服务器发送给第一应用程序客户端,第一消息采用第一格式封装,第一格式为第一
应用程序客户端能够识别的消息格式。
[0125] 在本申请实施例中,当用户需要将消息从第一应用程序客户端转发至第二应用程序客户端时,用户可操作终端实现第一应用程序客户端跳转至第二应用程序客户端,第一
应用程序客户端向第二应用程序客户端发送第二消息,由于第二应用程序客户端从第一应
用程序客户端直接收到了第二消息,而第二消息采用第二格式封装,第二格式为第二应用
程序客户端能够识别的消息格式,因此第二应用程序客户端不再需要识别第一格式的第一
消息,二应用程序客户端可以直接解析第二消息,因此本申请实施例提高了消息转发的效
率。
[0126] 在本申请的一些实施例中,当第二应用程序客户端接收到加密后的第二消息时,如图3所示,本申请实施例提供的方法还包括:
[0127] 223、第二应用程序客户端向第二应用程序服务器发送解密请求,解密请求由第二应用程序服务器发送给消息互通装置,消息互通装置对加密后的第二消息进行解密,并向
第二应用程序服务器发送解密后的第二消息;
[0128] 224、第二应用程序客户端接收第二应用程序服务器发送的解密后的第二消息。
[0129] 其中,第一应用程序客户端收到的是加密后的第二消息,第一应用程序客户端发送给第二应用程序客户端的是加密后的第二消息,通过对第二消息的加密传输,保证了消
息传输的安全性。由于第二应用程序客户端收到的是加密后的第二消息,则第二应用程序
客户端可以通过第二应用程序服务器向消息互通装置请求解密该第二消息,消息互通装置
由于存储有密钥,因此可以完成对第二消息的解密,消息互通装置还可以通过第二应用程
序服务器向第二应用程序客户端发送解密后的第二消息,第二应用程序客户端可以直接识
别出该解密后的第二消息。本申请实施例中,对第二消息的加解密操作由消息互通装置来
实现,不需要在第一应用程序客户端一侧进行加密,也不需要在第二应用程序客户端一侧
进行解密,因此第一应用程序客户端和第一应用程序客户端都不需要存储密钥,从而简化
了第一应用程序客户端和第二应用程序客户端的配置,也提高了消息安全传输的效率。
[0130] 222、第二应用程序客户端按照第二格式解析第二消息,第二格式为第二应用程序客户端能够识别的消息格式。
[0131] 在本申请实施例中,当用户需要将消息从第一应用程序客户端转发至第二应用程序客户端时,用户可操作终端实现第一应用程序客户端跳转至第二应用程序客户端,第一
应用程序客户端向第二应用程序客户端发送第二消息,由于第二应用程序客户端从第一应
用程序客户端直接收到了第二消息,而第二消息采用第二格式封装,第二格式为第二应用
程序客户端能够识别的消息格式,因此第二应用程序客户端不再需要识别第一格式的第一
消息,二应用程序客户端可以直接解析第二消息,因此本申请实施例提高了消息转发的效
率。
[0132] 在本申请的一些实施例中,如图4所示,步骤222第二应用程序客户端按照第二格式解析第二消息之后,本申请实施例提供的方法还包括:
[0133] 225、当第二应用程序客户端需要向第一应用程序客户端转发第二消息时,第二应用程序客户端向第二应用程序服务器发送第一转发请求,第一转发请求携带第二消息,第
一转发请求由第二应用程序服务器发送给消息互通装置,然后第二消息由消息互通装置通
过第一应用程序服务器发送给第一应用程序客户端。
[0134] 其中,第二应用程序客户端从第一应用程序客户端接收到第二消息之后,第二应用程序客户端还可以对该第二消息进行转发操作。例如第二应用程序客户端可以进行跨客
户端类型的转发操作,当第二应用程序客户端需要向第一应用程序客户端转发第二消息
时,第一转发请求由第二应用程序客户端发送给第二应用程序服务器。消息互通装置接收
第二应用程序服务器发送的第一转发请求,消息互通装置通过第一应用程序服务器向第一
应用程序客户端转发该第二消息,从而使得第一应用程序客户端可以接收到第二应用程序
客户端转发的第二消息,实现跨客户端类型的消息转发操作。
[0135] 在本申请的一些实施例中,如图5所示,步骤222第二应用程序客户端按照第二格式解析第二消息之后,本申请实施例提供的方法还包括:
[0136] 226、当第二应用程序客户端需要向第一应用程序客户端和第三应用程序客户端分别转发第二消息时,第二应用程序客户端向第二应用程序服务器发送第二转发请求,第
二转发请求携带第二消息,第二转发请求由第二应用程序服务器发送给消息互通装置,然
后第二消息由消息互通装置通过第一应用程序服务器发送给第一应用程序客户端,以及通
过第二应用程序服务器发送给第三应用程序客户端。
[0137] 其中,第二应用程序客户端从第一应用程序客户端接收到第二消息之后,第二应用程序客户端还可以对该第二消息进行转发操作。例如第二应用程序客户端可以进行跨客
户端类型的转发操作和同类型客户端的群内转发操作,当第二应用程序客户端需要向第一
应用程序客户端和第三应用程序客户端分别转发第二消息时,第二转发请求由第二应用程
序客户端发送给第二应用程序服务器。消息互通装置接收第二应用程序服务器发送的第二
转发请求,消息互通装置通过第一应用程序服务器向第一应用程序客户端转发该第二消
息,从而使得第一应用程序客户端可以接收到第二应用程序客户端转发的第二消息,实现
跨客户端类型的消息转发操作。且第二消息由第二应用程序服务器发送给第三应用程序客
户端,第二应用程序服务器为第三应用程序客户端提供后台服务,且第二应用程序服务器
为第二应用程序客户端提供后台服务,例如第二应用程序客户端和第三应用程序客户端属
于同一个群组时,从而使得第三应用程序客户端可以接收到第二应用程序客户端转发的第
二消息,实现同类型客户端的群内转发操作。
[0138] 通过以上实施例对本申请实施例的描述可知,第一应用程序服务器从第一应用程序客户端获取到第一消息,然后发送转换请求给消息互通装置,消息互通装置从转换请求
中获取到第一消息,第一消息采用第一格式封装,第一格式为第一应用程序客户端能够识
别的消息格式,消息互通装置将第一消息转换为第二消息,第二消息采用第二格式封装,第
二格式为第二应用程序客户端能够识别的消息格式,消息互通装置向第一应用程序服务器
发送第二消息,第一应用程序服务器将第二消息发送给第一应用程序客户端,当第一应用
程序客户端跳转至第二应用程序客户端之后,第一应用程序客户端将第二消息发送给第二
应用程序客户端,第一应用程序客户端和第二应用程序客户端在同一个终端上运行。本申
请实施例中消息互通装置具有消息格式转换功能,从而可以将第一消息转换成第二消息,
在同一个终端上第一应用程序客户端跳转至第二应用程序客户端之后,第二应用程序客户
端收到了第一应用程序客户端发送的第二消息,因此第二应用程序客户端可以按照第二应
用程序客户端能够识别的第二格式解析出第二消息,由于第一应用程序客户端发送的第二
消息是第二应用程序客户端能够直接识别的消息格式,因此提高消息转发的效率,且解决
了跨客户端转发时的消息兼容问题。
[0139] 为便于更好的理解和实施本申请实施例的上述方案,下面举例相应的应用场景来进行具体说明。
[0140] 接下来以第一应用程序客户端为企业微信客户端,第二应用程序客户端位微信客户端,第一应用程序服务器为企业微信后台,第二应用程序服务器为微信后台,消息互通装
置为互通后台IMUnion为例进行举例说明。
[0141] 本申请实施例提出一种基于企业微信和微信的互通渠道的聊天转换逻辑的技术方案,可以避免客户端之间的消息转发在扩展性、安全性、大小限制等方面的问题,也能达
到企业微信到微信的原生聊天记录的分享目的。
[0142] 本申请实施例中,基于一个消息互通IMUnion后台,用于实现多个异构系统之间的消息互通和异构账号管理,IMUnion提供通用的接口和事件中心,保证数据的一致性,各个
异构系统按这个通用的接口接入,例如IMUnion提供的通用接口可以是不同应用程序服务
器能够识别的接口,以实现不同应用程序服务器和IMUnion进行通信。另外,IMUnion同时通
过事件中心注册需要关心的事件,例如注册事件主要是针对具体的会话来注册事件,当该
会话中的消息发生变化时,触发相应的事件执行。
[0143] 具体的,企业微信客户端将聊天记录R_WW通过“企业微信后台‑>IMUnion后台”,转换成微信能支持的加密聊天记录R_WX_Encoded,然后调用微信OpenSDK跳转微信将R_WX_
Encoded传递给微信客户端。微信客户端通过“微信后台‑>IMUnion后台”解密得到聊天记录
R_WX,然后再通过微信自己的消息发送接口,就可以以原生的聊天记录方式将R_WX分享给
微信好友或群会话了。整个过程中企业微信和微信之间通过OpenSDK传递的数据只有一个
R_WX_Encoded的二进制数据,对企业微信和微信双方来讲是透明的,因此即使后续有新增
的消息类型,也不用双方在重新更新OpenSDK的接口了,并且R_WX_Encoded也是IMUnion后
台进行加密和解密的,密钥不会存在客户端;另外,聊天记录里面的视频或文件数据,也并
不需要真正包含具体的内容,只需要传递对应的下载Url即可,就能传递较大的文件了。这
样整个消息转发的扩展性和安全性更高。
[0144] 如图6所示,为本申请实施例提供的消息转发系统在聊天记录转发场景的系统架构示意图。消息转发系统包括以下几个部分:
[0145] 互通后台(即IMUnion后台)负责多个异构系统的逻辑处理和数据存储,比如异构账号管理、消息格式转换、群逻辑、键值对(key value,KV)存储、事件中心等,可以通过扩展
逻辑模块,实现其他的需要在异构系统之间转换的功能,IMUnion后台具有异构系统中消息
格式转换的中枢能力。另外,IMUnion后台还具有IMUnion接入层,IMUnion接入层用于和企
业微信接入层、微信接入层进行跨后台通信。
[0146] 企业微信后台具有KV存储、关系链、账号、群逻辑、安全逻辑、通知、消息等功能,企业微信后台负责与企业微信客户端、IMUnion后台之间的交互逻辑和数据处理。企业微信后
台还具有企业微信接入层。
[0147] 企业微信客户端具有会话界面,用于从企业微信后台接收IMUnion后台进行消息格式转换后的聊天记录,然后通过微信SDK将聊天记录通过数据传输通道发送给微信客户
端,微信SDK具有应用信息管理、数据处理转换功能。其中,数据传输通道可以通过openURL:
url和UIPasteboard来实现。企业微信客户端负责聊天记录、微信OpenSDK调用管理、会话界
面等逻辑处理和UI展示。
[0148] 微信后台具有KV存储、关系链、账号、群逻辑、安全逻辑、通知、消息等功能,微信后台负责与微信客户端、IMUnion之间的交互逻辑和数据处理。微信后台还具有微信接入层。
[0149] 微信客户端负责聊天记录、OpenSDK调用处理、会话列表、会话界面等逻辑处理和用户图形界面的展示。例如微信客户端使用ApiHandler,通过数据传输通道接收到企业微
信客户端发送的聊天记录,ApiHandler具有数据分发和数据转换功能,微信客户端具有会
话列表界面和会话界面,微信客户端可以在会话界面上显示该聊天记录。
[0150] 如图7所示,为本申请实施例提供的聊天记录转换和转发的实现流程示意图,主要包括如下过程:
[0151] 步骤1至步骤5说明聊天记录转换的流程。
[0152] 在步骤1和步骤2中,企业微信用户WW_A在任意一个已有的聊天会话中,选择多条消息组合并成聊天记录R_WW,然后点击“转发到微信”后,会先对R_WW里面的消息进行各种
限制检查,比如包含的文件大小是否超过限制(因为微信侧的文件消息有大小的限制)、消
息类型是否能被转发出去(语音、红包等,还有一些企业微信特有的消息类型);如果检查后
发现条件都满足,则会发送转换R_WW的请求到企业微信后台。
[0153] 在步骤3、步骤4和步骤5中,企业微信后台收到R_WW,再将数据传递给消息互通IMUnion后台进行转换,IMUnion会将R_WW转换为微信能识别的消息格式R_WX,如图8,为本
申请实施例提供的消息格式转换的示意图,并加密为R_WX_Encoded,然后加密转换后R_WX_
Encoded返回给企业微信后台,最后再返回给WW_A。
[0154] 步骤6至步骤15说明聊天记录转发的流程.
[0155] 在步骤6至步骤7中,企业微信WW_A拿到R_WX_Encoded数据后,通过微信提供的OpenSDK接口进行数据封装后,然后再通过OpenSDK接口调起同一台手机上的微信用户WX_A
并将数据传递给微信;微信客户端侧收到数据后,解析得到R_WX_Encoded。这个过程是纯客
户端之间的交互,可以参考图6所示的桥接企业微信和微信的数据传输通道的功能。
[0156] 在步骤7至步骤10中,微信WX_A解析得到R_WX_Encoded,首先会通过微信后台‑>互通IMUnion后台这个链路,解密R_WX_Encoded得到R_WX,然后就可以调起最近聊天会话列表
弹框,展示R_WX的摘要内容了。
[0157] 在步骤11中,WX_A可以选择最近聊天会话列表的某个会话,也可以新建一个聊天会话,然后将R_WX转发到对应的会话里面。
[0158] 在步骤12至步骤13中,如果WX_A选择转发的会话是微信用户或微信群,那么微信后台直接将R_WX推送到给微信用户或微信群就可以了,不会再经过消息互通IMUnion后台。
[0159] 在步骤14至步骤15中,如果WX_A选择转发的会话是企业微信用户或互通群(互通群包含微信和企业微信用户),那么微信后台会先将R_WX发送给互通IMUnion后台,然后再
由IMUnion统一将R_WX推送到企业微信后台或微信后台,最后各自后台再将R_WX推送到各
自的客户端用户。
[0160] 如图8所示,为本申请实施例提供的消息格式转换的示意图。IMUnion后台可以将企业微信聊天记录(WW_RecordItem)转换到微信聊天记录(WX_RecordItem),主要是因为双
方的消息类型和内容格式有差别,比如企业微信的消息内容是protobuf编码的格式,而微
信的是使用json串的格式。另外双方能支持转换的消息类型一定是双方都能支持展示的,
比如常见的文本、图片、视频、文件、地理位置、链接、小程序、聊天记录等。具体的,WW_
RecordItem可以包括uin、time、content_type、content(protobuf)、sender_name、sender_
headurl、conversation_id,分别转换为WX_RecordItem中的from_openid、msg_time、type、
content(json串)、from_name、from_headurl、is_chatroom。
[0161] 需要说明的是,微信转发聊天记录到企业微信,也可以按照类似的流程实现,只是IMUnion转换消息格式的方向相反而已,此处不再赘述。
[0162] 图9a为本申请实施例提供的企业微信客户端生成的聊天记录的示意图,图9b为本申请实施例提供的聊天记录转发入口的效果示意图,用户可以点击企业微信的聊天窗口
901上的“转发到微信”的转发按钮902来触发消息的转发操作。
[0163] 图10为本申请实施例提供的聊天记录转发跳转微信客户端后的效果示意图,图10示意了向微信转发的转发窗口903,用户可以选择“发送”按钮。
[0164] 图11a为本申请实施例提供的聊天记录转发后微信客户端侧的效果示意图,在微信的聊天窗口1001内示意了企业微信转发的聊天记录1002,用户可以点击该聊天记录的摘
要内容,从而显示图11b所示的微信的聊天窗口1001上的显示效果,图11b为本申请实施例
提供的聊天记录转发后微信客户端侧的聊天内容示意图。
[0165] 图12a为本申请实施例提供的聊天记录转发后企业微信客户端侧的效果示意图,在企业微信的聊天窗口901内示意了微信转发的聊天记录1003,用户可以点击该聊天记录
的摘要内容,从而显示图12b所示的微信的聊天窗口1001上的显示效果,图12b为本申请实
施例提供的聊天记录转发后企业微信客户端侧的聊天内容示意图。
[0166] 图13a为本申请实施例提供的微信客户端侧的包含小程序的聊天记录转发后的效果示意图,在微信的聊天窗口1001内示意了微信转发的聊天记录,该聊天记录中包括有小
程序,图13b为本申请实施例提供的企业微信客户端侧的包含小程序的聊天记录转发后的
效果示意图,在企业微信的聊天窗口901内示意了微信转发的聊天记录,该聊天记录中包括
有小程序。
[0167] 需要说明的是,在前述图例中示意了聊天记录转发入口的展示效果,对于图例中所示的聊天记录、发起者的名称、标识、头像、聊天记录的格式与内容均为举例,此处不做限
定,可以根据实际应用场景来配置聊天记录的各种信息。
[0168] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限
制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术
人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不
一定是本申请实施例所必须的。
[0169] 为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
[0170] 请参阅图14所示,本申请实施例提供的一种消息互通装置1400,可以包括:接收模块1401、处理模块1402、发送模块1403,其中,
[0171] 接收模块1401,用于接收第一应用程序服务器发送的转换请求;
[0172] 处理模块1402,用于从所述转换请求中获取到第一消息,其中,所述第一消息由所述第一应用程序服务器从第一应用程序客户端获取到,所述第一消息采用第一格式封装,
所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0173] 所述处理模块1402,还用于将所述第一消息转换为第二消息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消息格式;
[0174] 发送模块1403,用于向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述第一应用程序客户
端跳转至所述第二应用程序客户端之后,所述第二消息由所述第一应用程序客户端发送给
所述第二应用程序客户端,所述第一应用程序客户端和所述第二应用程序客户端在同一个
终端上运行。
[0175] 在本申请的一些实施例中,所述处理模块1402,还用于使用预设的密钥对所述第二消息进行加密,得到加密后的第二消息;
[0176] 发送模块1403,用于向所述第一应用程序服务器发送所述加密后的第二消息,所述加密后的第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端,当所述
第一应用程序客户端跳转至所述第二应用程序客户端之后,所述加密后的第二消息由所述
第一应用程序客户端发送给所述第二应用程序客户端。
[0177] 在本申请的一些实施例中,接收模块1401,还用于发送模块1403向所述第一应用程序服务器发送所述加密后的第二消息之后,接收第二应用程序服务器发送的解密请求,
并从所述解密请求中获取到所述加密后的第二消息,其中,所述加密后的第二消息由所述
第二应用程序服务器从所述第二应用程序客户端获取到;
[0178] 所述处理模块1402,还用于使用所述密钥对所述加密后的第二消息进行解密,得到解密后的第二消息;
[0179] 发送模块1403,用于向所述第二应用程序服务器发送所述解密后的第二消息,所述解密后的第二消息由所述第二应用程序服务器发送给所述第二应用程序客户端。
[0180] 在本申请的一些实施例中,处理模块1402,还用于按照所述第一格式解析所述第一消息,得到如下参数:第一用户标识、第一时间戳、第一内容类型、第一消息内容、第一发
送端名称、第一发送端地址和第一会话标识;将所述第一用户标识转换为第二用户标识,将
所述第一时间戳转换为第二时间戳,将所述第一内容类型转换为第二内容类型,将所述第
一消息内容转换为第二消息内容,将所述第一发送端名称转换为第二发送端名称,将所述
第一发送端地址转换为第二发送端地址,将所述第一会话标识转换为第二会话标识;按照
所述第二格式,将所述第二用户标识、所述第二时间戳、所述第二内容类型、所述第二消息
内容、所述第二发送端名称、所述第二发送端地址和所述第二会话标识封装为所述第二消
息。
[0181] 在本申请的一些实施例中,处理模块1402,还用于从所述转换请求中获取到第一消息之后,确定所述第一消息中是否包括所述第一应用程序客户端下载到的资源内容;当
所述第一消息中包括所述资源内容时,确定所述资源内容对应的下载地址;将所述第一消
息中的所述资源内容替换为所述下载地址,得到包括所述下载地址的第一消息。
[0182] 在本申请的一些实施例中,处理模块1402,还用于将包括所述下载地址的第一消息转换为第二消息。
[0183] 在本申请的一些实施例中,接收模块1401,还用于发送模块1403向所述第一应用程序服务器发送所述第二消息之后,接收第二应用程序服务器发送的第一转发请求,并从
所述第一转发请求中获取到所述第二消息,其中,当所述第二应用程序客户端需要向所述
第一应用程序客户端转发所述第二消息时,所述第一转发请求由所述第二应用程序客户端
发送给所述第二应用程序服务器;
[0184] 发送模块1403,用于向所述第一应用程序服务器发送所述第二消息,所述第二消息由所述第一应用程序服务器发送给所述第一应用程序客户端。
[0185] 在本申请的一些实施例中,接收模块1401,还用于发送模块1403向所述第一应用程序服务器发送所述第二消息之后,接收所述第二应用程序服务器发送的第二转发请求,
并从所述第二转发请求中获取到所述第二消息,其中,当所述第二应用程序客户端需要向
所述第一应用程序客户端和第三应用程序客户端分别转发所述第二消息时,所述第二转发
请求由所述第二应用程序客户端发送给所述第二应用程序服务器;
[0186] 发送模块1403,用于向所述第一应用程序服务器和所述第二应用程序服务器分别发送所述第二消息,其中,所述第二消息由所述第一应用程序服务器发送给所述第一应用
程序客户端,且所述第二消息由所述第二应用程序服务器发送给所述第三应用程序客户
端,所述第二应用程序服务器为所述第三应用程序客户端提供后台服务。
[0187] 请参阅图15所示,本申请实施例提供的一种应用程序客户端,所述应用程序客户端具体为第一应用程序客户端1500,所述第一应用程序客户端1500包括:处理模块1501、发
送模块1502、接收模块1503,其中,
[0188] 处理模块1501,用于确定需要转发的第一消息,所述第一消息采用第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0189] 发送模块1502,用于向第一应用程序服务器发送转换请求,所述转换请求携带所述第一消息,所述转换请求由所述第一应用程序服务器发送给消息互通装置,所述消息互
通装置将所述第一消息转换为第二消息,并向所述第一应用程序服务器发送所述第二消
息,所述第二消息采用第二格式封装,所述第二格式为第二应用程序客户端能够识别的消
息格式;
[0190] 接收模块1503,用于接收所述第一应用程序服务器发送的所述第二消息;
[0191] 所述发送模块1502,还用于当所述第一应用程序客户端跳转至所述第二应用程序客户端之后,向所述第二应用程序客户端发送所述第二消息,所述第一应用程序客户端和
所述第二应用程序客户端在同一个终端上运行。
[0192] 在本申请的一些实施例中,接收模块1503,用于接收所述第一应用程序服务器发送的加密后的第二消息;
[0193] 发送模块1502,用于向所述第二应用程序客户端发送所述加密后的第二消息。
[0194] 请参阅图16所示,本申请实施例提供的一种应用程序客户端,所述应用程序客户端具体为第二应用程序客户端1600,所述第二应用程序客户端1600包括:接收模块1601、处
理模块1602、发送模块1603,其中,
[0195] 接收模块1601,用于当第一应用程序客户端跳转至所述第二应用程序客户端之后,接收所述第一应用程序客户端发送的第二消息,所述第一应用程序客户端和所述第二
应用程序客户端在同一个终端上运行;其中,所述第二消息由消息互通装置对第一消息进
行转换后,通过第一应用程序服务器发送给所述第一应用程序客户端,所述第一消息采用
第一格式封装,所述第一格式为所述第一应用程序客户端能够识别的消息格式;
[0196] 处理模块1602,用于按照所述第二格式解析所述第二消息,所述第二格式为第二应用程序客户端能够识别的消息格式。
[0197] 在本申请的一些实施例中,发送模块1603,用于当所述第二应用程序客户端接收到加密后的第二消息时,向第二应用程序服务器发送解密请求,所述解密请求由所述第二
应用程序服务器发送给所述消息互通装置,所述消息互通装置对所述加密后的第二消息进
行解密,并向所述第二应用程序服务器发送所述解密后的第二消息;
[0198] 接收模块1601,用于接收所述第二应用程序服务器发送的所述解密后的第二消息。
[0199] 在本申请的一些实施例中,发送模块1603,用于处理模块1602按照所述第二格式解析所述第二消息之后,当所述第二应用程序客户端需要向所述第一应用程序客户端转发
所述第二消息时,向第二应用程序服务器发送第一转发请求,所述第一转发请求携带所述
第二消息,所述第一转发请求由所述第二应用程序服务器发送给所述消息互通装置,然后
所述第二消息由所述消息互通装置通过第一应用程序服务器发送给所述第一应用程序客
户端。
[0200] 在本申请的一些实施例中,发送模块1603,用于处理模块1602按照所述第二格式解析所述第二消息之后,当所述第二应用程序客户端需要向所述第一应用程序客户端和第
三应用程序客户端分别转发所述第二消息时,向第二应用程序服务器发送第二转发请求,
所述第二转发请求携带所述第二消息,所述第二转发请求由所述第二应用程序服务器发送
给所述消息互通装置,然后所述第二消息由所述消息互通装置通过第一应用程序服务器发
送给所述第一应用程序客户端,以及通过所述第二应用程序服务器发送给所述第三应用程
序客户端。
[0201] 通过以上实施例对本申请实施例的描述可知,第一应用程序服务器从第一应用程序客户端获取到第一消息,然后发送转换请求给消息互通装置,消息互通装置从转换请求
中获取到第一消息,第一消息采用第一格式封装,第一格式为第一应用程序客户端能够识
别的消息格式,消息互通装置将第一消息转换为第二消息,第二消息采用第二格式封装,第
二格式为第二应用程序客户端能够识别的消息格式,消息互通装置向第一应用程序服务器
发送第二消息,第一应用程序服务器将第二消息发送给第一应用程序客户端,当第一应用
程序客户端跳转至第二应用程序客户端之后,第一应用程序客户端将第二消息发送给第二
应用程序客户端,第一应用程序客户端和第二应用程序客户端在同一个终端上运行。本申
请实施例中消息互通装置具有消息格式转换功能,从而可以将第一消息转换成第二消息,
在同一个终端上第一应用程序客户端跳转至第二应用程序客户端之后,第二应用程序客户
端收到了第一应用程序客户端发送的第二消息,因此第二应用程序客户端可以按照第二应
用程序客户端能够识别的第二格式解析出第二消息,由于第一应用程序客户端发送的第二
消息是第二应用程序客户端能够直接识别的消息格式,因此提高消息转发的效率,且解决
了跨客户端转发时的消息兼容问题。
[0202] 本申请实施例还提供了一种终端,该终端具体可以是前述的消息互通转置、第一应用程序客户端、第二应用程序客户端。如图17所示,为了便于说明,仅示出了与本申请实
施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包
括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of 
Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0203] 图17示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图17,手机包括:射频(Radio Frequency,RF)电路1710、存储器1720、输入单元1730、显示单元
1740、传感器1750、音频电路1760、无线保真(wireless fidelity,WiFi)模块1770、处理器
1780、以及电源1790等部件。本领域技术人员可以理解,图17中示出的手机结构并不构成对
手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布
置。
[0204] 下面结合图17对手机的各个构成部件进行具体的介绍:
[0205] RF电路1710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1780处理;另外,将设计上行的数据发送给基站。通常,RF电路
1710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise 
Amplifier,LNA)、双工器等。此外,RF电路1710还可以通过无线通信与网络和其他设备通
信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global 
System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio 
Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址
(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,
LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
[0206] 存储器1720可用于存储软件程序以及模块,处理器1780通过运行存储在存储器1720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1720可主
要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的
应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所
创建的数据(比如音频数据、电话本等)等。此外,存储器1720可以包括高速随机存取存储
器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固
态存储器件。
[0207] 输入单元1730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1730可包括触控面板1731以及其他输入
设备1732。触控面板1731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户
使用手指、触笔等任何适合的物体或附件在触控面板1731上或在触控面板1731附近的操
作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1731可包括触摸检测
装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带
来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它
转换成触点坐标,再送给处理器1780,并能接收处理器1780发来的命令并加以执行。此外,
可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1731。除了触控面
板1731,输入单元1730还可以包括其他输入设备1732。具体地,其他输入设备1732可以包括
但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的
一种或多种。
[0208] 显示单元1740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1740可包括显示面板1741,可选的,可以采用液晶显示器(Liquid 
Crystal Display,LCD)、有机发光二极管(Organic Light‑Emitting Diode,OLED)等形式
来配置显示面板1741。进一步的,触控面板1731可覆盖显示面板1741,当触控面板1731检测
到在其上或附近的触摸操作后,传送给处理器1780以确定触摸事件的类型,随后处理器
1780根据触摸事件的类型在显示面板1741上提供相应的视觉输出。虽然在图17中,触控面
板1731与显示面板1741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些
实施例中,可以将触控面板1731与显示面板1741集成而实现手机的输入和输出功能。
[0209] 手机还可包括至少一种传感器1750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线
的明暗来调节显示面板1741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板
1741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加
速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏
切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还
可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0210] 音频电路1760、扬声器1761,传声器1762可提供用户与手机之间的音频接口。音频电路1760可将接收到的音频数据转换后的电信号,传输到扬声器1761,由扬声器1761转换
为声音信号输出;另一方面,传声器1762将收集的声音信号转换为电信号,由音频电路1760
接收后转换为音频数据,再将音频数据输出处理器1780处理后,经RF电路1710以发送给比
如另一手机,或者将音频数据输出至存储器1720以便进一步处理。
[0211] WiFi属于短距离无线传输技术,手机通过WiFi模块1770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图17示出了
WiFi模块1770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改
变发明的本质的范围内而省略。
[0212] 处理器1780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1720内的软件程序和/或模块,以及调用存储在存储器1720
内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器
1780可包括一个或多个处理单元;优选的,处理器1780可集成应用处理器和调制解调处理
器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处
理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1780中。
[0213] 手机还包括给各个部件供电的电源1790(比如电池),优选的,电源可以通过电源管理系统与处理器1780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管
理等功能。
[0214] 尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0215] 在本申请实施例中,该终端所包括的处理器1780还具有控制执行以上由消息互通转置、第一应用程序客户端、第二应用程序客户端执行的方法流程。
[0216] 图18是本申请实施例提供的一种服务器结构示意图,该服务器1800具体可以是前述的消息互通转置,该服务器1800可因配置或性能不同而产生比较大的差异,可以包括一
个或一个以上中央处理器(central processing units,CPU)1822(例如,一个或一个以上
处理器)和存储器1832,一个或一个以上存储应用程序1842或数据1844的存储介质1830(例
如一个或一个以上海量存储设备)。其中,存储器1832和存储介质1830可以是短暂存储或持
久存储。存储在存储介质1830的程序可以包括一个或一个以上模块(图示没标出),每个模
块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1822可以设置为与存
储介质1830通信,在服务器1800上执行存储介质1830中的一系列指令操作。
[0217] 服务器1800还可以包括一个或一个以上电源1826,一个或一个以上有线或无线网络接口1850,一个或一个以上输入输出接口1858,和/或,一个或一个以上操作系统1841,例
TM TM TM TM TM
如Windows Server ,Mac OS X ,Unix ,Linux ,FreeBSD 等等。
[0218] 上述实施例中由消息互通转置所执行的步骤可以基于该图18所示的服务器结构。
[0219] 另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也
可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实
际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请实施例
提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实
现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,
即可以理解并实施。
[0220] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请实施例可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电
路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能
都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是
多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请实施例而言更多情况
下软件程序实现是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或
者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储
在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read‑Only 
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令
用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施
例各个实施例所述的方法。
[0221] 综上所述,以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照上述实施例对本申请实施例进行了详细的说明,本领域的普通技术人员应当理解:其
依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同
替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请实施例各实施例技术
方案的精神和范围。