CN103391481A - 一种基于实时消息传送协议的数据交互方法、装置和系统 - Google Patents
一种基于实时消息传送协议的数据交互方法、装置和系统 Download PDFInfo
- Publication number
- CN103391481A CN103391481A CN201310293605XA CN201310293605A CN103391481A CN 103391481 A CN103391481 A CN 103391481A CN 201310293605X A CN201310293605X A CN 201310293605XA CN 201310293605 A CN201310293605 A CN 201310293605A CN 103391481 A CN103391481 A CN 103391481A
- Authority
- CN
- China
- Prior art keywords
- message
- client
- media data
- data
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及网络技术领域,特别是一种基于实时消息传送协议的数据交互方法,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,所述方法还包括:客户端向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;客户端利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;客户端输出所述媒体数据。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种基于实时消息传送协议的数据交互方法、装置和系统。
背景技术
RTMP(Real Time Messaging Protocol,实时消息传送协议)是一种在播放器和服务器之间进行音频、视频和数据传输的协议。RTMP协议在视频点播和直播应用中得到了广泛的应用。客户端(例如播放器)可以利用RTMP协议与服务器进行数据交互。例如,客户端可以接收服务器推送的音视频数据,并在客户端实现本地播放。
现有技术中,客户端只能够被动地接收服务器推送的音视频数据,但当用户带宽较窄时,同时播放音视频数据则会导致播放出现卡顿甚至停滞,造成较差的用户体验。现有技术并不存在一种方法以解决这一问题。
发明内容
为解决上述技术问题,本发明实施例提供了一种基于实时消息传送协议的数据交互方法、装置和系统,流媒体服务器可以根据客户端的请求有选择地向用户推送不同类型的媒体数据,避免客户端因为带宽限制而造成播放卡顿、停滞的问题。
根据本发明实施例的第一方面,公开了一种基于实时消息传送协议的数据交互方法,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,所述方法还包括:
客户端向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;
客户端利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;
客户端输出所述媒体数据。
进一步的,所述客户端向流媒体服务器发送接收媒体数据类型消息具体包括:
客户端向流媒体服务器发送接收音频数据消息receive_audio和/或接收视频数据消息receive_video;其中,所述接收音频数据消息receive_audio用于表明客户端请求接收的媒体数据的类型为音频数据;所述接收视频数据消息receive_video消息用于表明客户端请求接收的媒体数据的类型为视频数据。
进一步的,所述方法还包括:
客户端监测当前网络状态,当判断当前网络状态为拥堵状态时,则执行所述向流媒体服务器发送接收媒体数据类型消息的步骤。
进一步的,所述方法还包括:
客户端利用所述传输通道向流媒体服务器发送流消息Flexstream Message,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
进一步的,所述方法还包括:
客户端接收流媒体服务器通过所述传输通道发送的流消息Flexstream Message,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
进一步的,所述流消息Flexstream Message携带的额外消息包括同步信息、播放延时信息、媒体附加信息、即时通信消息、游戏交互信息、控制信息中的一种或多种。
根据本发明实施例的第二方面,公开了一种基于实时消息传送协议的客户端,所述客户端与流媒体服务器数据连接,所述客户端包括:
连接建立单元,用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接以及建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;
第一发送单元,用于向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;
第一接收单元,用于利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;
输出单元,用于输出所述媒体数据。
进一步的,所述客户端还包括:
第二发送单元,用于利用所述传输通道向流媒体服务器发送流消息Flexstream Message,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
进一步的,所述客户端还包括:
第二接收单元,用于接收流媒体服务器通过所述传输通道发送的流消息Flexstream Message,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
根据本发明实施例的第三方面,公开了一种基于实时消息传送协议的数据交互系统,所述系统包括客户端和流媒体服务器,其中:
所述客户端用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型;接收流媒体服务器发送的媒体数据,并输出所述媒体数据;
所述流媒体服务器用于接收客户端发送的接收媒体数据类型消息,并根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。
本发明实施例能够达到的有益效果为:本发明提供了一种基于实时消息传送协议的数据交互方法,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器 传输媒体数据之后,客户端还可以根据自己的需要向流媒体服务器发送接收媒体数据类型消息以表明自己请求接收的媒体数据的类型,以便于流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。客户端则可以接收流媒体服务器发送的媒体数据,并输出媒体数据。在本发明中,客户端能够主动向服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息携带了客户端请求接收的媒体数据的类型,这样,服务器可以根据客户端的请求发送对应的媒体数据。也就是说,客户端可以在网络状况较差时,选择只接收音频数据或者只接收视频数据,以避免同时接收音视频数据导致的带宽占用,以达到较流畅的播放效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于实时消息传送协议的数据交互方法第一实施例示意图;
图2为本发明实施例提供的基于实时消息传送协议的数据交互方法第二实施例示意图;
图3为本发明实施例提供的基于实时消息传送协议的数据交互方法第三实施例示意图;
图4为本发明实施例基于实时消息传送协议的客户端示意图;
图5为本发明实施例提供的基于实时消息传送协议的数据交互系统第一实施例示意图;
图6为本发明实施例提供的基于实时消息传送协议的数据交互系统第二实施例示意图。
具体实施方式
本发明实施例提供了一种基于实时消息传送协议的数据交互方法和装置,流媒体服务器可以根据客户端的请求有选择地向用户推送不同类型的媒体数据,避免客户端因为带宽限制而造成播放卡顿、停滞的问题。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参见图1,为本发明实施例提供的基于实时消息传送协议的数据交互方法第一实施例示意图。
本发明第一实施例提供了一种基于实时消息传送协议的数据交互方法。所述方法应用于基于实时消息传送协议的客户端中,其中所述客户端与流媒体服务器数据连接。当然,本领域技术人员可以理解的是,本发明实施例提供的方法也可以应用到基于实时消息传送协议的数据交互系统中,所述系统包括客户端和流媒体服务器。其中,所述客户端又可分为发布客户端(Publish Client)和播放客户端(Play Client)。其中,发布客户端可以向流媒体服务器推送媒体数据以及其他数据以发布其推送的数据。播放客户端可以接收流媒体服务器推送的媒体数据以及其他数据。
一种基于实时消息传送协议的数据交互方法,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,所述方法还包括:
S101,客户端向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。
现有技术中,客户端只能够被动地接收流媒体数据发送的媒体数据,所述媒体数据往往同时包括音频数据和对应的视频数据。当用户的带宽不足或受到限制时,或者当用户的当前网络状况较差处于拥堵状态时,同时接收音 视频数据可能会造成带宽的大量占用导致客户端播放音视频数据出现卡顿甚至停滞,给用户带来了较差的体验。而在本发明中,客户端能够主动向服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息携带了客户端请求接收的媒体数据的类型,这样,服务器可以根据客户端的请求发送对应的媒体数据。也就是说,客户端可以在网络状况较差时,选择只接收音频数据或者只接收视频数据,以避免同时接收音视频数据导致的带宽占用,以达到较流畅的播放效果。
具体实现时,所述客户端向流媒体服务器发送接收媒体数据类型消息具体可以包括:客户端向流媒体服务器发送接收音频数据消息receive_audio和/或接收视频数据消息receive_video;其中,所述接收音频数据消息receive_audio用于表明客户端请求接收的媒体数据的类型为音频数据;所述接收视频数据消息receive_video消息用于表明客户端请求接收的媒体数据的类型为视频数据。当流媒体服务器接收到客户端发送的接收媒体数据类型消息为接收音频数据消息receive_audio时,则分析所述接收音频数据消息receive_audio中携带的媒体数据类型。当判断所述媒体数据类型为音频数据类型时,所述流媒体服务器向客户端发送对应的音频数据。当流媒体服务器接收到客户端发送的接收媒体数据类型消息为接收视频数据消息receive_video消息时,则分析所述接收视频数据消息receive_video消息携带的媒体数据类型。当判断所述媒体数据类型为视频数据类型时,所述流媒体服务器向客户端发送对应的视频数据。当流媒体服务器同时收到客户端发送的接收音频数据消息receive_audio和接收视频数据消息receive_video时,则向客户端同时发送对应的音频数据和视频数据。在本发明中,客户端可以选择只接收音频数据或视频数据的一种,服务器可以应客户端的请求向客户端发送与客户端请求的媒体数据类型对应的媒体数据,减少了带宽占用,提升了播放的效果,为用户带来更好的体验。
具体实现时,客户端向流媒体服务器发送接收媒体数据类型消息的触发可以包括多种实现方式。一种可能的实现方式为接收用户的输入,以触发向流媒体服务器发送接收媒体数据类型消息。例如,当用户发现当前客户端播放不流畅、卡顿甚至停滞时,则可以发送输入消息,以触发客户端向流媒体 服务器发送接收媒体数据类型消息。用户可以选择只播放音频数据、视频数据。当用户没有输入请求时,客户端则可以向流媒体服务器同时发送接收音频数据消息receive_audio和接收视频数据消息receive_video。具体实现时,为用户提供相应的界面,以接收所述输入请求,以实现向流媒体发送接收媒体数据类型消息的触发。
此外,本领域技术人员可以理解的是,本发明还可以自动触发向流媒体服务器发送接收媒体数据类型消息。在一种实现方式中,本发明提供的方法还可以进一步包括:在客户端向流媒体服务器发送接收媒体数据类型消息之前,客户端监测当前网络状态。当判断当前网络状态为拥堵状态时,则执行所述向流媒体服务器发送接收媒体数据类型消息的步骤。这样,客户端可以通过检测网络状态实现向流媒体服务器发送接收媒体数据类型消息的自动触发。例如,客户端可以监测当前数据传输速度、带宽占用情况等信息,以判断当前网络状态是否处于拥堵状态。例如,可以预先设置阈值,当判断当前输出传输速度小于第一阈值时,则确定当前网络状态处于拥堵状态。或者,当判断当前带宽占用全部带宽的比值超过第二阈值时,则确定当前网络状态处于拥堵状态。当然,本领域技术人员可以理解的是,还可以采用其他实现方式实现客户端向流媒体服务器发送接收媒体数据类型消息的自动触发。本领域技术人员在不付出创造性劳动下获取的其他实现方式均属于本发明的保护范围。
S102,客户端利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应。
具体实现时,客户端可以利用建立的传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应。
S103,客户端输出所述媒体数据。
客户端具有输出单元,可以输出流媒体服务器发送的媒体数据。
当本发明实施例提供的方法应用于基于实时消息传送协议的数据交互系统中时,所述系统包括客户端和流媒体服务器。其中,所述客户端又可分为发布客户端(Publish Client)和播放客户端(Play Client)。其中,发布 客户端可以向流媒体服务器推送媒体数据以及其他数据以发布其推送的数据。播放客户端可以接收流媒体服务器推送的媒体数据以及其他数据。
则本发明提供的方法还可以进一步包括:
客户端利用所述传输通道向流媒体服务器发送流消息Flexstream Message,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。具体实现时,所述客户端具体为发布客户端Publish Client,在发布客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,发布客户端可以向流媒体服务器发送媒体数据。与现有技术不同的是,本发明提供的方法还可以支持客户端通过向流媒体服务器发送流消息Flexstream Message,以向服务器发送除媒体数据之外的其他额外信息。
其中,所述流消息Flexstream Message携带的额外消息可以包括以下一种或多种消息:
(1)同步信息。例如,在视频直播应用中,可以在流消息Flexstream Message中传输歌词数据和歌词的同步信息。具体的,歌词的同步可以通过时间戳来实现同步。
(2)播放延时信息。在本发明中,客户端可以实时监控用户的音视频卡顿情况,客户端可以在流消息Flexstream Message中将播放延时、播放卡顿信息发送到流媒体服务器,这样流媒体服务器端可以实时分析这些数据。
(3)媒体附加信息。例如,在视频直播应用中,主播的唱歌打分信息、互动信息等媒体附件信息可以通过流消息Flexstream Message广播给正在收听的观众(即播放客户端)。
(4)即时通信消息。例如,在FLASH在线聊天应用中,将即时聊天信息作为额外消息通过流消息Flexstream Message传输。
(5)游戏交互信息。例如,在FLASH在线游戏应用中,将游戏的交互信息作为额外消息通过流消息Flexstream Message传输。
(6)控制信息。本发明支持在Flexstream Message各种控制消息,对控制消息的内容和类型不进行限定。
进一步的,在本发明提供的方法中,还可以进一步包括:
客户端接收流媒体服务器通过所述传输通道发送的流消息Flexstream Message,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。具体实现时,所述客户端具体为播放客户端Play Client,在发布客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,播放客户端除了可以接收流媒体服务器发送的媒体数据之外,与现有技术不同的是,本发明提供的方法还可以支持播放客户端接收流媒体服务器通过流消息Flexstream Message发送的除媒体数据之外的其他额外信息。其中,其他额外信息可以是发布客户端向流媒体服务器发送的,也可以是流媒体服务器向播放客户端发送的信息。流消息Flexstream Message可以携带的额外信息的类型与发布客户端发送的流消息Flexstream Message可以携带的额外信息的类型相同。
在本发明第一实施例中,提供了一种基于实时消息传送协议的数据交互方法,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,客户端还可以根据自己的需要向流媒体服务器发送接收媒体数据类型消息以表明自己请求接收的媒体数据的类型,以便于流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。客户端则可以接收流媒体服务器发送的媒体数据,并输出媒体数据。在本发明中,客户端能够主动向服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息携带了客户端请求接收的媒体数据的类型,这样,服务器可以根据客户端的请求发送对应的媒体数据。也就是说,客户端可以在网络状况较差时,选择只接收音频数据或者只接收视频数据,以避免同时接收音视频数据导致的带宽占用,以达到较流畅的播放效果。
参见图2,为本发明实施例提供的基于实时消息传送协议的数据交互方法第二实施例示意图。
在本发明第二实施例中,从发布客户端与流媒体服务器的交互对本发明提供的数据交互方法进行了说明。其中,图中的Publish Client为发布客户 端,Server为流媒体服务器。其中,流媒体服务器可以是支持实时消息传送协议RTMP的服务器,包括但不限于FMS(Flash Media Server)、crtmpserver(C++RTMP Server,一种基于C++的高性能流媒体服务器)、Red5(一中基于Java的Flash流媒体服务器)等。
S201,客户端向流媒体服务器发送HandShaking握手消息。
S202,客户端连接流媒体服务器的应用程序。
具体的,客户端利用Connect消息连接服务端的应用实例。服务器端可能有多个应用,比如:视频会议、FLASH在线游戏、美女视频直播等。
S203,服务器返回连接响应结果。
S204,客户端创建传输通道。
客户端通过createStream消息用指定的流ID创建一个逻辑通道用于发送音视频数据和额外数据,流ID用于标示指定的逻辑通道。比如:视频会议可能有多个频道,一个逻辑通道就表示一个视频会议的频道。
S205,服务器返回创建传输通道响应结果。
S206,客户端开始发布数据。
S207,客户端向发送服务器音频数据。
S208,客户端向服务器发送视频数据。
S209,客户端通过流消息Flexstream Message向服务器发送除媒体数据的其他额外数据。
S210,数据交互完成后,删除建立的逻辑通道。
在本发明第二实施例中,发布客户端可以向服务器发送音频数据和视频数据,并可以通过流消息Flexstream Message向服务器发送除媒体数据之外的其他额外数据,以实现诸如同步、聊天等应用,为用户提供了更多的应用和服务。
参见图3,为本发明实施例提供的基于实时消息传送协议的数据交互方法第三实施例示意图。
在本发明第三实施例中,从播放客户端与流媒体服务器的交互对本发明提供的数据交互方法进行了说明。其中,图中的Play Client为播放客户端,Server为流媒体服务器。其中,流媒体服务器可以是支持实时消息传送协议 RTMP的服务器,包括但不限于FMS(Flash Media Server)、crtmpserver(C++RTMP Server,一种基于C++的高性能流媒体服务器)、Red5(一中基于Java的Flash流媒体服务器)等。
S301,客户端向流媒体服务器发送HandShaking握手消息。
S302,客户端连接流媒体服务器的应用程序。
具体的,客户端利用Connect消息连接服务端的应用实例。
S303,服务器返回连接响应结果。
S304,客户端创建传输通道。
客户端通过createStream消息创建一个逻辑通道用于发送音视频数据和额外数据。
S305,服务器返回创建传输通道响应结果。
S306,客户端向服务器发送接收音频数据消息receive_audio以选择接收音频数据。所述receive_audio用于表明客户端请求服务器发送音频数据至客户端。
S307,服务器返回响应。
S308,客户端向服务器发送接收视频数据消息receive_video以选择接收视频数据。所述receive_video用于表明客户端请求服务器发送视频数据至客户端。
S309,服务器返回响应。
S310,客户端开始接收的数据。
S311,服务器向客户端发送音频数据。
S312,服务器向客户端发送视频数据。
S313,客户端接收服务器通过流消息Flexstream Message发送的除媒体数据的其他额外数据。
S314,数据交互完成后,删除建立的逻辑通道。
在本发明第三实施例中,播放客户端可以通过向服务器发送接收音频数据消息receive_audio和/或接收视频数据消息receive_video以选择想要接收的媒体数据的类型,在带宽受限时,可以减少带宽占用,以提高数据传输效率,并提升播放效果。此外,播放客户端可以接收服务器通过流消息 Flexstream Message发送的除媒体数据的其他额外数据,以实现诸如同步、聊天等应用,为用户提供了更多的应用和服务。
以上对本发明提供的方法实施例进行了介绍,本领域技术人员可以理解的是,上述实施例均可以改动、变形、组合得到其他实现方式,均属于本发明的保护范围。
图4为本发明实施例基于实时消息传送协议的客户端示意图。
一种基于实时消息传送协议的客户端,所述客户端与流媒体服务器数据连接,所述客户端包括:
连接建立单元401,用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接以及建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;
第一发送单元402,用于向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;
第一接收单元403,用于利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;
输出单元404,用于输出所述媒体数据。
进一步的,所述第一发送单元具体用于向流媒体服务器发送接收音频数据消息receive_audio和/或接收视频数据消息receive_video;其中,所述接收音频数据消息receive_audio用于表明客户端请求接收的媒体数据的类型为音频数据;所述接收视频数据消息receive_video消息用于表明客户端请求接收的媒体数据的类型为视频数据。
进一步的,所述客户端还包括:
监控单元,用于监测当前网络状态,当判断当前网络状态为拥堵状态时,进入所述第一发送单元。
进一步的,所述客户端还包括:
第二发送单元,用于利用所述传输通道向流媒体服务器发送流消息 Flexstream Message,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
进一步的,所述客户端还包括:
第二接收单元,用于接收流媒体服务器通过所述传输通道发送的流消息Flexstream Message,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
进一步的,所述流消息Flexstream Message携带的额外消息包括同步信息、播放延时信息、媒体附加信息、即时通信消息、游戏交互信息、控制信息中的一种或多种。
图5为本发明实施例提供的基于实时消息传送协议的数据交互系统第一实施例示意图。
一种基于实时消息传送协议的数据交互系统,所述系统包括客户端和流媒体服务器,其中:
所述客户端400用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型;接收流媒体服务器发送的媒体数据,并输出所述媒体数据;
所述流媒体服务器500用于接收客户端发送的接收媒体数据类型消息,并根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。
图6为本发明实施例提供的基于实时消息传送协议的数据交互系统第二实施例示意图。在这一实现方式中,所述数据交互系统包括流媒体服务器RTMPServer、发布客户端(Publish Client)和播放客户端(Play Client)。其中,所述发布客户端可以向流媒体服务器推送媒体数据以及其他数据以发布其推送的数据。播放客户端可以接收流媒体服务器推送的媒体数据以及其他数据。所述流媒体服务器可以是支持实时消息传送协议RTMP的服务器,包括但不限于FMS(Flash Media Server)、crtmpserver(C++RTMP Server,一种基于C++的高性能流媒体服务器)、Red5(一中基于Java的Flash流媒 体服务器)等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于实时消息传送协议的数据交互方法,其特征在于,在客户端向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据之后,所述方法还包括:
客户端向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;
客户端利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;
客户端输出所述媒体数据。
2.根据权利要求1所述的方法,其特征在于,所述客户端向流媒体服务器发送接收媒体数据类型消息具体包括:
客户端向流媒体服务器发送接收音频数据消息receive_audio和/或接收视频数据消息receive_video;其中,所述接收音频数据消息receive_audio用于表明客户端请求接收的媒体数据的类型为音频数据;所述接收视频数据消息receive_video消息用于表明客户端请求接收的媒体数据的类型为视频数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
客户端监测当前网络状态,当判断当前网络状态为拥堵状态时,则执行所述向流媒体服务器发送接收媒体数据类型消息的步骤。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
客户端利用所述传输通道向流媒体服务器发送流消息FlexstreamMessage,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
5.根据权利要1所述的方法,其特征在于,所述方法还包括:
客户端接收流媒体服务器通过所述传输通道发送的流消息FlexstreamMessage,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
6.根据权利要求4或5所述的方法,其特征在于,所述流消息FlexstreamMessage携带的额外消息包括同步信息、播放延时信息、媒体附加信息、即时通信消息、游戏交互信息、控制信息中的一种或多种。
7.一种基于实时消息传送协议的客户端,其特征在于,所述客户端与流媒体服务器数据连接,所述客户端包括:
连接建立单元,用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接以及建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;
第一发送单元,用于向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型,以使得流媒体服务器在接收到所述接收媒体数据类型消息后根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据;
第一接收单元,用于利用所述传输通道接收流媒体服务器发送的媒体数据,所述媒体数据与所述接收媒体数据类型消息中携带的媒体数据类型相对应;
输出单元,用于输出所述媒体数据。
8.根据权利要求7所述的客户端,其特征在于,所述客户端还包括:
第二发送单元,用于利用所述传输通道向流媒体服务器发送流消息Flexstream Message,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
9.根据权利要求7所述的客户端,其特征在于,所述客户端还包括:
第二接收单元,用于接收流媒体服务器通过所述传输通道发送的流消息Flexstream Message,其中,所述流消息Flexstream Message中携带了除媒体数据之外的额外信息。
10.一种基于实时消息传送协议的数据交互系统,其特征在于,所述系统包括客户端和流媒体服务器,其中:
所述客户端用于向流媒体服务器发送握手消息以与所述流媒体服务器建立连接、并建立对应的传输通道以用于与所述流媒体服务器传输媒体数据;向流媒体服务器发送接收媒体数据类型消息,所述接收媒体数据类型消息中携带客户端请求的媒体数据类型;接收流媒体服务器发送的媒体数据,并输出所述媒体数据;
所述流媒体服务器用于接收客户端发送的接收媒体数据类型消息,并根据所述接收媒体数据类型消息中携带的媒体数据类型向客户端发送对应的媒体数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310293605XA CN103391481A (zh) | 2013-07-12 | 2013-07-12 | 一种基于实时消息传送协议的数据交互方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310293605XA CN103391481A (zh) | 2013-07-12 | 2013-07-12 | 一种基于实时消息传送协议的数据交互方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103391481A true CN103391481A (zh) | 2013-11-13 |
Family
ID=49535622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310293605XA Pending CN103391481A (zh) | 2013-07-12 | 2013-07-12 | 一种基于实时消息传送协议的数据交互方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103391481A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853234A (zh) * | 2015-05-12 | 2015-08-19 | 无锡天脉聚源传媒科技有限公司 | 一种数据处理方法及系统与移动终端 |
CN110177127A (zh) * | 2019-04-15 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 基于grpc框架的数据传输方法、装置及设备 |
CN114338625A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 实时通信方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193271A (zh) * | 2006-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 视频录制实时回放方法 |
CN101848205A (zh) * | 2010-03-16 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 一种基于rtsp的移动终端播放流媒体的方法及系统 |
CN102325182A (zh) * | 2011-09-09 | 2012-01-18 | 重庆抛物线信息技术有限责任公司 | 一种音视频共享方法及系统 |
CN102333089A (zh) * | 2011-09-26 | 2012-01-25 | 南京邮电大学 | 基于超文本传输协议流化的多码率媒体流自适应控制方法 |
-
2013
- 2013-07-12 CN CN201310293605XA patent/CN103391481A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193271A (zh) * | 2006-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 视频录制实时回放方法 |
CN101848205A (zh) * | 2010-03-16 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 一种基于rtsp的移动终端播放流媒体的方法及系统 |
CN102325182A (zh) * | 2011-09-09 | 2012-01-18 | 重庆抛物线信息技术有限责任公司 | 一种音视频共享方法及系统 |
CN102333089A (zh) * | 2011-09-26 | 2012-01-25 | 南京邮电大学 | 基于超文本传输协议流化的多码率媒体流自适应控制方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853234A (zh) * | 2015-05-12 | 2015-08-19 | 无锡天脉聚源传媒科技有限公司 | 一种数据处理方法及系统与移动终端 |
CN110177127A (zh) * | 2019-04-15 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 基于grpc框架的数据传输方法、装置及设备 |
CN110177127B (zh) * | 2019-04-15 | 2021-12-07 | 创新先进技术有限公司 | 基于grpc框架的数据传输方法、装置及设备 |
CN114338625A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 实时通信方法、装置、设备及存储介质 |
CN114338625B (zh) * | 2022-01-11 | 2023-09-15 | 平安科技(深圳)有限公司 | 实时通信方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881783B (zh) | 实现多人会话的方法和装置、计算机设备和存储介质 | |
KR101584085B1 (ko) | 사용자들의 그룹 사이에서 실시간 오디오 브로드캐스트들을 관리하기 위한 방법 및 시스템 | |
WO2016184118A1 (zh) | 实现多媒体会议的方法及装置 | |
CN104363476A (zh) | 一种基于在线直播的组队活动方法、相关装置及系统 | |
CN110267064A (zh) | 音频播放状态处理方法、装置、设备及存储介质 | |
CN110677696A (zh) | 直播互动系统及方法、设备、存储介质 | |
CN112291502A (zh) | 信息交互方法、装置、系统和电子设备 | |
CN102469294A (zh) | 一种视频会议的动态调整媒体内容的方法和系统 | |
CN110943977B (zh) | 多媒体业务数据传输方法、服务端、设备及存储介质 | |
CN103297858A (zh) | 一种智能电视用户状态显示系统及方法 | |
CN112788053A (zh) | 一种实时通信方法、装置、服务器、系统及存储介质 | |
CN103391481A (zh) | 一种基于实时消息传送协议的数据交互方法、装置和系统 | |
RU2011109460A (ru) | Способ и устройство для беспроводного распространения мультиплексного сигнала, содержащего мультимедийные данные, по локальной сети | |
CN106817607B (zh) | 基于虚拟桌面的音视频组播播放方法、装置及系统 | |
CN109889922A (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
CN103391451A (zh) | 在观看视频时进行交流的方法、系统和装置 | |
CN105245514A (zh) | 外挂识别方法、装置及系统 | |
CN111866440B (zh) | 一种推送视频数据方法、装置、设备及存储介质 | |
CN104469248A (zh) | 视频会话方法、装置、服务器及终端 | |
CN105376075A (zh) | 基于web的聊天室语音直播系统及语音直播方法 | |
CN105898596B (zh) | 直播间显示控制方法及装置 | |
CN107995201B (zh) | 数据的传输方法及装置、服务器及存储介质 | |
CN110224924A (zh) | 状态更新方法和装置、存储介质及电子装置 | |
CN114979545A (zh) | 多终端的通话方法和存储介质及电子设备 | |
CN110251943B (zh) | 一种游戏玩家的匹配方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131113 |
|
RJ01 | Rejection of invention patent application after publication |