一种数据通信的方法及装置与流程

文档序号:11156383阅读:289来源:国知局
一种数据通信的方法及装置与制造工艺

本发明实施例涉及通信的技术领域,尤其涉及一种数据通信的方法及装置。



背景技术:

在包含社交的移动APP中,即时通讯(IM)是基础且重要的功能,稳定可靠的IM能够提高用户的活跃度,在一定程度上增加用户的粘滞度。但如何实现IM能力对很多开发者尤其是资源有限的创业团队来讲是有一定门槛的。可以使用可扩展消息处理现场协议(XMPP)作为基础协议实现IM功能。但该协议是基于可扩展标记语言(XML)的协议,决定了有效负载相对较低,协议本身开销大。



技术实现要素:

本发明实施例的目的在于提出一种数据通信的方法及装置,旨在解决如何采样MQTT协议作为IM的基础协议节约了从零开发时大量的人力物力成本的问题。

为达此目的,本发明实施例采用以下技术方案:

第一方面,一种数据通信的方法,所述方法包括:

服务器根据发送消息的类型配置对应的主题信息;

所述服务器根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;

所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过MQTT协议发送给移动终端;

所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。

优选地,所述服务器根据发送消息的类型配置对应的主题信息,包括:

在单聊实现中,所述服务器为每个用户分配一个唯一的ID,再订阅通配单聊消息主题MSG/用户ID/IM/#;

在群聊实现中,所述服务器为每个群组分配一个唯一的群组ID,再订阅通配群聊消息主题MSG/群组ID/IM/#;

在全员消息实现中,所述服务器订阅主题MSG/Business/Notification/,并向所有用户发送具有所述订阅主题的消息。

优选地,所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过消息队列遥测传输MQTT协议发送给移动终端,包括:

所述服务器将所述数据类型格式由JOSN转换为二进制、加密,再封装到发送数据区中进行发送;所述JSON包括所述移动终端的ID,所述JSON包括T/IMG/VIDEO/CARD特定的数据类型表达。

优选地,所述T标识文本消息,所述IMG标识图片消息,所述VIDEO标识音频消息,所述CARD标识名片消息。

优选地,所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析,包括:

若所述移动终端通过通配单聊消息主题/T/或者通配群聊消息主题/T/接收所述数据,则所述移动终端根据文本消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/IMG/或通配群聊消息主题/IMG/接收所述数据,则所述移动终端根据图片消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/VIDEO/或通配群聊消息主题/VIDEO/接收所述数据,则所述移动终端根据语音消息的解析规则对所述数据进行解析。

第二方面,一种数据通信的装置,所述装置包括:

第一配置模块,用于根据发送消息的类型配置对应的主题信息;

第二配置模块,用于根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;

发送模块,用于将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过消息队列遥测传输MQTT协议发送给移动终端;

解析模块,用于接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。

优选地,所述第一配置模块,具体用于:

在单聊实现中,为每个用户分配一个唯一的ID,再订阅通配单聊消息主题MSG/用户ID/IM/#;

在群聊实现中,为每个群组分配一个唯一的群组ID,再订阅通配群聊消息主题MSG/群组ID/IM/#;

在全员消息实现中,订阅主题MSG/Business/Notification/,并向所有用户发送具有所述订阅主题的消息。

优选地,所述发送模块,具体用于:

将所述数据类型格式由JOSN转换为二进制、加密,再封装到发送数据区中进行发送;所述JSON包括所述移动终端的ID,所述JSON包括T/IMG/VIDEO/CARD特定的数据类型表达。

优选地,所述IM/T标识文本消息,所述IM/IMG标识图片消息,所述IM/VIDEO标识音频消息,所述IM/CARD标识名片消息。

优选地,所述解析模块,具体用于:

若所述移动终端通过通配单聊消息主题/T/或者通配群聊消息主题/T/接收所述数据,则根据文本消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/IMG/或通配群聊消息主题/IMG/接收所述数据,则根据图片消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/VIDEO/或通配群聊消息主题/VIDEO/接收所述数据,则根据语音消息的解析规则对所述数据进行解析。

本发明实施例提供的一种数据通信的方法及装置,服务器根据发送消息的类型配置对应的主题信息;所述服务器根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过MQTT协议发送给移动终端;所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。从而通过主题规范、内容规范,利用MQTT中QOS=2有且只有一次送达这个特性,对MQTT协议进行完整实现后,解析出一条消息,则能获知该条消息的发送者,通过以上的方式实现了IM快速的功能;利用MQTT协议,制定规范的主题和消息内容,扩展和丰富了MQTT的使用场景。

附图说明

图1是本发明实施例提供的一种数据通信的方法的流程示意图;

图2是本发明实施例提供的一种数据通信的装置的功能模块示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

参考图1,图1是本发明实施例提供的一种数据通信的方法的流程示意图。

如图1所示,所述数据通信的方法包括:

步骤101,服务器根据发送消息的类型配置对应的主题信息;

其中,现有MQTT主要用于物联网方面的应用,如手机APP的推送。但通过对MQTT的深入分析,将应用场景扩大到IM功能。

对基于发布/订阅的主题规则制定,用于满足单聊,群聊,全员消息以及消息的可达性,离线消息的保存等;并且能够通过主题识别消息类型,如文本,语音,图片或者其他自定义的消息;能够在服务端不解码具体消息内容的情况下发送推送告知离线用户收到的消息类型,如:您收到一条语音消息;对未来的消息类型有一定的预留扩展空间。

采样MQTT协议作为IM的基础协议,节约了从零开发时大量的人力物力成本,对相关人员的技术能力要求有所降低;避免了使用第三方服务时受到的各种约束,用户数据能够全部得到保留并且避免第三方对用户数据的抓取;同时提高了有效负载,节约资源。

MQTT协议是IBM为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

1.非常小的通信开销(最小的消息大小为2字节);

2.支持各种流行编程语言(包括C,Java,Ruby,Python等等)且易于使用的客户端;

3.支持发布/订阅模型,简化应用程序的开发;

4.提供三种不同消息传递等级,让消息能按需到达目的地,适应在不稳定工作的网络传输需求。

优选地,所述服务器根据发送消息的类型配置对应的主题信息,包括:

在单聊实现中,所述服务器为每个用户分配一个唯一的ID,再订阅通配单聊消息主题MSG/用户ID/IM/#;

在群聊实现中,所述服务器为每个群组分配一个唯一的群组ID,再订阅通配群聊消息主题MSG/群组ID/IM/#;

在全员消息实现中,所述服务器订阅主题MSG/Business/Notification/,并向所有用户发送具有所述订阅主题的消息。

具体的,根据要扩展的IM业务场景,遵守主题的规则制定,各个业务可制定不同的主题,使用基于订阅的特性,完成一次通信如下过程:

单聊实现过程:每个用户分配一个唯一ID,然后订阅通配单聊消息主题:MSG/用户ID/IM/#,订阅成功后,凡是发往MSG/用户ID/IM/开头的主题上的消息,都会经过服务器转发发往该用户,实现了单聊消息的发送和接收。

群聊实现过程:每个群组分配一个唯一的群组ID,然后群成员订阅通配群聊消息主题:MSG/群组ID/IM/#,订阅成功后,凡是发往MSG/群组ID/IM/开头的主题上的消息,都会经过服务器转发发往订阅该主题的所有用户(既所有群成员),实现了群聊消息的发送和接收。

全员消息实现:订阅主题MSG/Business/Notification/,全员发送的消息都发往这个主题,这样所有用户都能收到该消息。

为了达到服务端不需要解析具体消息内容,就能发送离线推送给相应的客户端,制定几个字符的冗余数据在主题中,IM/T表示发送的消息为文本消息,IM/IMG代表图片消息,IM/VIDEO代表音频消息,IM/CARD代表名片消息,这样服务端只需要动态的更新一下对应表就能从主题上直接知道消息类型,提高效率。对于新增加的消息类型,比如发送一个IM/SHARE消息,当老版本收到后,会提示需要升级才能查看,这样避免版本不统一造成消息错误展示。

步骤102,所述服务器根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;

步骤103,所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过消息队列遥测传输MQTT协议发送给移动终端;

优选地,所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过消息队列遥测传输MQTT协议发送给移动终端,包括:

所述服务器将所述数据类型格式由JOSN转换为二进制、加密,再封装到发送数据区中进行发送;所述JSON包括所述移动终端的ID,所述JSON包括T/IMG/VIDEO/CARD特定的数据类型表达。

其中,所述T标识文本消息,所述IMG标识图片消息,所述VIDEO标识音频消息,所述CARD标识名片消息。

具体的,主题订阅完成后,再规定具体的数据格式,数据格式由JOSN转换为二进制,加密,然后封装到发送数据区中进行发送。

JSON中都包含发送者的ID,含有msgType为T/IMG/VIDEO/CARD等特定的数据类型表达,这样能区分出消息的具体内容。解密后根据规则进行对应KEY的解析,达到不同类型消息的接收。

文本消息:发送数据到通配单聊消息主题/T/或通配群聊消息主题/T/的主题上,通过该主题接收数据后,就能知道后续接收的二进制数据是要转换成文本消息,对应的解析相关的数据即可。

图片消息:发送数据到通配单聊消息主题/IMG/或通配群聊消息主题/IMG/的主题上,通过该主题接收数据后,就能知道后续接收的二进制数据是要转换成图片消息,对应的解析相关的数据即可。

语音消息:发送数据到通配单聊消息主题/VIDEO/或通配群聊消息主题/VIDEO/的主题上,通过该主题接收数据后,就能知道后续接收的二进制数据是要转换成语音消息,对应的解析相关的数据即可。

步骤104,所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。

优选地,所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析,包括:

若所述移动终端通过通配单聊消息主题/T/或者通配群聊消息主题/T/接收所述数据,则所述移动终端根据文本消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/IMG/或通配群聊消息主题/IMG/接收所述数据,则所述移动终端根据图片消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/VIDEO/或通配群聊消息主题/VIDEO/接收所述数据,则所述移动终端根据语音消息的解析规则对所述数据进行解析。

本发明实施例提供的一种数据通信的方法,服务器根据发送消息的类型配置对应的主题信息;所述服务器根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过MQTT协议发送给移动终端;所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。从而通过主题规范、内容规范,利用MQTT中QOS=2有且只有一次送达这个特性,对MQTT协议进行完整实现后,解析出一条消息,则能获知该条消息的发送者,通过以上的方式实现了IM快速的功能;利用MQTT协议,制定规范的主题和消息内容,扩展和丰富了MQTT的使用场景。

参考图2,图2是本发明实施例提供的一种数据通信的装置的功能模块示意图。

如图2所示,所述数据通信的装置包括:

第一配置模块201,用于根据发送消息的类型配置对应的主题信息;

优选地,所述第一配置模块,具体用于:

在单聊实现中,为每个用户分配一个唯一的ID,再订阅通配单聊消息主题MSG/用户ID/IM/#;

在群聊实现中,为每个群组分配一个唯一的群组ID,再订阅通配群聊消息主题MSG/群组ID/IM/#;

在全员消息实现中,订阅主题MSG/Business/Notification/,并向所有用户发送具有所述订阅主题的消息。

第二配置模块202,用于根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;

发送模块203,用于将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过消息队列遥测传输MQTT协议发送给移动终端;

优选地,所述发送模块203,具体用于:

将所述数据类型格式由JOSN转换为二进制、加密,再封装到发送数据区中进行发送;所述JSON包括所述移动终端的ID,所述JSON包括T/IMG/VIDEO/CARD特定的数据类型表达。

其中,所述T标识文本消息,所述IMG标识图片消息,所述VIDEO标识音频消息,所述CARD标识名片消息。

解析模块204,用于接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。

优选地,所述解析模块204,具体用于:

若所述移动终端通过通配单聊消息主题/T/或者通配群聊消息主题/T/接收所述数据,则根据文本消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/IMG/或通配群聊消息主题/IMG/接收所述数据,则根据图片消息的解析规则对所述数据进行解析;

若所述移动终端通过通配单聊消息主题/VIDEO/或通配群聊消息主题/VIDEO/接收所述数据,则根据语音消息的解析规则对所述数据进行解析。

本发明实施例提供的一种数据通信的装置,服务器根据发送消息的类型配置对应的主题信息;所述服务器根据发送内容配置数据类型格式,所述数据类型格式包括所述主题信息;所述服务器将待发送数据按照所述数据类型格式进行封装,并将封装后的数据通过MQTT协议发送给移动终端;所述移动终端接收所述数据,并根据所述数据类型格式获取对应的解析密码对所述数据进行解析。从而通过主题规范、内容规范,利用MQTT中QOS=2有且只有一次送达这个特性,对MQTT协议进行完整实现后,解析出一条消息,则能获知该条消息的发送者,通过以上的方式实现了IM快速的功能;利用MQTT协议,制定规范的主题和消息内容,扩展和丰富了MQTT的使用场景。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1