一种与html5浏览器互通数据的方法及系统的制作方法

文档序号:7764224阅读:568来源:国知局
专利名称:一种与html5浏览器互通数据的方法及系统的制作方法
技术领域
本发明涉及互联网数据交互技术,尤其涉及一种实现与HTML5浏览器互通数据的方法及系统。
背景技术
Flash是世界上第一个商用的二维矢量动画软件,被称为是“最为灵活的前台”, 由于其独特的时间片段分割(TimeLine)和重组(MC嵌套)技术,结合Actior^citp的对象和流程控制,使得在灵活的界面设计和动画设计成为可能,同时它也是最为小巧的前台。 Flash具有跨平台的特性,所以无论你处于何种平台,只要你安装了支持的Flash Player, 就可以保证它们的最终显示效果的一致。同Java —样,它有很强的可移植性。基于上述特点,Flash被大量应用于互联网网页的矢量动画设计,例如基于网页的Flash游戏等,是一种流行的交互式Web程序语言。超文本标记语言(HyperText Mark-up Language,HTML)是目前互联网应用最广泛的扩展标记语言,也是构成网页文档的主要语言。HTML5是HTML最新的版本,相比于HTML 之前的版本,HTML5提供了更为合理的标签Tag,多媒体对象将不再全部绑定在object或 embed Tag中,而是视频有视频的Tag,音频有音频的Tag ;还提供了本地数据库支持,该功能将内嵌一个本地的SQL数据库,以加速交互式搜索,缓存以及索引功能。此外,HTML5还提供了 Canvas标签对象,通过该对象可以实现不需要插件的富动画,该功能将给浏览器带来直接在上面绘制矢量图的能力,这意味着网页设计者可以脱离Flash和Silverlight,直接在浏览器中显示图形或动画。HTML5还将提供应用程序接口(API)以实现浏览器内的编辑,拖放,以及各种图形用户界面的能力。通过HTML5的新特性,使得基于HTML开发网页游戏变的方便和灵活。基于上述Flash和HTML5的特性,现有技术中缺乏一种有效的手段来实现Flash 客户端和HTML5浏览器之间互通数据的方法。以网络游戏为例,现有网页游戏的开发设计者通常会使用两种编程实现方式,一种就是在网页中内嵌Flash,完全通过Flash编程来实现;另一种方式就是基于HTML5来编程实现;对于一款基于互联网的多人在线角色扮演游戏(MMORPG),为了扩大用户范围,考虑到新老系统的兼容,其所支持的游戏客户端实现方式必然是多样的,然而,在现有技术中,由于缺乏有效的沟通手段,只能实现Flash客户端的用户一起玩游戏,基于HTML5浏览器客户端的用户一起玩游戏,无法实现两类客户端用户的互联互通。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现与HTML5浏览器互通数据的方法及系统,用于解决HTML5浏览器客户端与采用其它类型协议数据格式的客户端进行数据交互的技术问题。为达到上述目的,本发明的技术方案是这样实现的
一种实现与超文本标记语言HTML5浏览器互通数据的系统,该系统包括第一协议转换实体,用于执行HTML5协议数据格式与内部标准协议数据格式的转换,负责将HTML5浏览器发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体,以及将业务逻辑处理实体发送的数据转换成HTML5协议数据格式后发送给HTML5浏
IrWSB
觅器;第二协议转换实体,用于执行第二协议数据格式与内部标准协议数据格式的转换,负责将第二协议实体发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体,以及将业务逻辑处理实体发送的数据转换成第二协议数据格式后发送给第二协议实体;业务逻辑处理实体,用于接收通过内部标准协议数据包发送过来的用户数据,执行业务逻辑,并基于内部标准协议实现HTML5浏览器与第二协议实体间业务数据交互。
进一步地,所述第二协议实体为Flash客户端,所述第二协议数据格式为Flash客户端所支持的二进制协议数据格式。进一步地,所述第一协议实体为HTML5浏览器客户端,所述第一协议数据格式为 HTML5的WebSocket协议数据格式。进一步地,所述第一协议转换实体和第二协议转换实体位于同一协议转换服务器中,所述协议转换服务器通过接入端口号来区分接入的客户端所采用的协议数据格式类型。基于本发明实施例,还提出一种实现与超文本标记语言HTML5浏览器互通数据的方法,该方法包括HTML5浏览器客户端通过第一协议转换实体与业务逻辑处理实体进行数据交互; 第一协议转换实体执行从HTML5协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到HTML5协议数据格式的转换;第二协议实体通过第二协议转换实体与业务逻辑处理实体进行数据交互;第二协议转换实体执行从第二协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到第二协议数据格式的转换;业务逻辑处理实体执行业务逻辑处理,并基于内部标准协议数据格式实现HTML5 浏览器客户端与第二协议实体的数据交互;进一步地,所述第二协议实体为Flash客户端,所述第二协议数据格式为Flash客户端所支持的二进制协议数据格式。进一步地,所述第一协议实体为HTML5浏览器客户端,所述第一协议数据格式为 HTML5的WebSocket协议数据格式。进一步地,其特征在于,将所述第一协议转换实体和第二协议转换实体集成于同一协议转换服务器中,所述协议转换服务器通过接入端口号来区分接入的客户端所采用的协议数据格式类型。本发明通过协议转换实体将HTML5浏览器客户端和其它类型的客户端所采用的协议数据格式转换为内部标准协议数据格式,业务逻辑处理实体基于内部标准协议实现 HTML5浏览器客户端与其它类型客户端数据之间的数据交互。通过本发明可以实现采用不同协议数据格式的客户端与HTML5浏览器客户端之间的数据交互,增强了业务系统的兼容性和可扩展性。


图1为本发明一种实现与HTML5浏览器互通数据的系统逻辑结构示意图;图2为本发明一种实现与HTML5浏览器互通数据的方法流程图;图3为本发明HTML5浏览器的WebSocket协议报文格式示意图;图4为本发明Flash客户端所采用的协议报文格式示意图;图5为本发明内部标准协议数据格式示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图1为本发明提供的一种实现与HTML5浏览器互通数据的系统逻辑结构示意图, 该系统100包括第一协议转换实体101,用于执行HTML5协议数据格式与内部标准协议数据格式的转换,负责将HTML5浏览器发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体102,以及将业务逻辑处理实体102发送的数据转换成HTML5协议数据格式后发送给HTML5浏览器;本发明所述的内部标准数据格式可以是用户自定义的协议数据格式,也可以是现有标准协议的协议数据格式,本发明不限制所述内部标准协议数据格式的形式。所述内部标准数据格式的作用在于在业务逻辑层面上统一不同业务客户端的接入接口,从而进一步实现不同协议实体与HTML5浏览器客户端的数据交互。第二协议转换实体103,用于执行第二协议数据格式与内部标准协议数据格式的转换,负责将第二协议实体发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体102,以及将业务逻辑处理实体102发送的数据转换成第二协议数据格式后发送给第二协议实体;所述的第二协议数据包所采用的协议数据格式为非HTML5协议之外的协议数据格式,本发明不限制第二协议实体的类型,也不限制第二协议数据格式的具体形式;业务逻辑处理实体102,用于接收通过内部标准协议数据包发送过来的用户数据,执行业务逻辑,并基于内部标准协议实现HTML5浏览器与第二协议实体间业务数据交互。所述的业务逻辑与具体的应用相关,本发明不限制该实体所执行的具体的业务逻辑;其中,基于内部标准协议实现HTML5浏览器与第二协议实体间业务数据交互具体是指基于 HTML5浏览器的用户和基于第二协议实体的用户所发送的协议数据分别通过第一和第二协议转换实体进行协议转换后,都以统一的内部标准协议数据包格式发送给业务逻辑处理实体102,在业务逻辑处理实体102 —侧看来,所有用户都是基于统一的内部标准协议进行数据收发,因此,业务逻辑处理实体102不需要关心在本发明所述系统之外每个用户所具体使用的是何种协议,用户之间的数据交互都通过内部标准协议实现。图2为基于本发明所提出的系统实现HTML5浏览器与其它协议实体进行数据交互的方法流程图,具体步骤如下步骤201 :HTML5浏览器客户端通过第一协议转换实体101与业务逻辑处理实体进行数据交互;第一协议转换实体101执行从HTML5协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到HTML5协议数据格式的转换;步骤202 第二协议实体通过第二协议转换实体103与业务逻辑处理实体进行数据交互;第二协议转换实体103执行从第二协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到第二协议数据格式的转换;步骤203 业务逻辑处理实体102执行业务逻辑处理,并基于内部标准协议数据格式实现HTML5浏览器客户端与第二协议实体的数据交互;本发明所述的内部标准数据格式为所述第一协议转换实体和第二协议转换实体共同遵守的一种内部标准协议数据格式,可以是一种自定义的私有数据格式或现有标准协议数据格式,本发明不限制所述内部标准协议数据格式和第二协议数据格式的具体形式。以下以一优选实施例来说明本发明的技术方案,该实施例基于本发明的技术方案实现Flash客户端与HTML5浏览器的数据交互,该实施例中,Flash客户端和HTML5浏览器客户端作为游戏客户端为用户提供界面交互;协议转换服务器(包含第一协议转换实体和第二协议转换实体)用于Flash 二进制协议数据格式与内部标准协议数据格式及HTML5 的WebSocket协议数据格式与内部标准协议数据格式之间的转换;游戏服务器(业务逻辑处理实体)用于实现游戏业务逻辑的处理。Flash客户端与第一协议转换实体之间通过 Flash 二进制协议数据格式进行数据交互,HTML5浏览器客户端与第一协议转换实体之间通过HTML5的WebSocket协议数据格式进行数据交互。HTML5的WebSocket协议很特别,是一种文本/ 二进制混合协议,协议底层基于 TCP。主流浏览器中,仅有Chrome和Mfari能够比较好地支持到HTML5的W^ebSocket。HTML5的W^ebSocket有一个特殊的两次握手过程,发生在TCP连接建立之后。 WebSocket必须在两次握手之后才能传输应用程序所需的报文数据。第一次握手时,HTML5浏览器(客户端)会向协议转换服务器发送如下示例的报文GET/game HTTP/1. 1Upgrade:WebSocket//指示协议数据格式ConnectionUpgradeHost kylin. qq. com:8008 //指示第一协议转换实体的主机地址及端口Origin:http://kylin. qq. comCookie:KylinCookie第二次握手时,如果第一次握手成功,协议转换服务器会向客户端(浏览器)发送如下示例的报文(文本格式)。HTTP/1. 1 IOlffeb Socket Protocol HandshakeUpgrade:WebSocketConnection: UpgradeWebSocket-Origin:http://kylin. qq. comWebSocket-Location:ws://ky1 in. qq. com:8008/game如果两次握手中发送的报文内容都没问题,那么HTML5浏览器和协议转换服务器之间的数据信道会正式建立起来。否则,浏览器和协议转换服务器之间的TCP连接也会被断掉。WebSocket协议报文分包时,要求使用0x00作为报文首部,使用OxFF作为报文尾部,报文体可以是任意的数据串,示意图如图3所示。Flash本身对二进制协议数据格式没有具体的报文格式要求,也没有对报文首部和报文尾部作特殊要求,该实施例中采用自定义的报文格式,为了分包,该实施例采用两个字节的报文首部,首部中存储报文的字节长度。例如,长度538字节的报文,报文首部的两个字节值就分别是0x02和OxlA。该实施例的协议没有报文尾部,该实施例报文具体格式如图4所示。该实施例中,协议转换服务器同时包含了第一协议转换实体和第二协议转换实体,采用双端口监听机制来实现各实体的功能。如前文所述,该实施例中的协议转换服务器使得Flash客户端和HTML5浏览器用户的数据能在一个游戏服务器上互通。有了这种技术, 基于Flash客户端的PC用户和基于HTML5的il^ad/iPhone用户可以在同一个游戏场景中玩游戏。协议转换服务器同时监听两个端口 8000和8008。Flash客户端和协议转换服务器在8000端口建立TCP连接并通信,而HTML5浏览器则和协议转换服务器在8008端口建立TCP连接并通信。该实施例中,系统为每个客户端连接都分配一个用户ID作为唯一标识。协议转换服务器内部会维护一个连接信息表,用于存储用户信息数据结构。用户信息包含了用户 ID、连接使用的文件句柄(FD)、连接类型等字段。连接类型有1和2两种取值,取值1表示 Flash客户端(来自8000端口),取值2表示HTML5浏览器(来自8008端口)。连接信息表的内容如表1所示表 权利要求
1.一种实现与超文本标记语言HTML5浏览器互通数据的系统,其特征在于,该系统包括第一协议转换实体,用于执行HTML5协议数据格式与内部标准协议数据格式的转换, 负责将HTML5浏览器发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体,以及将业务逻辑处理实体发送的数据转换成HTML5协议数据格式后发送给HTML5浏览器;第二协议转换实体,用于执行第二协议数据格式与内部标准协议数据格式的转换,负责将第二协议实体发送的数据转换成内部标准协议数据格式后发送给业务逻辑处理实体, 以及将业务逻辑处理实体发送的数据转换成第二协议数据格式后发送给第二协议实体;业务逻辑处理实体,用于接收通过内部标准协议数据包发送过来的用户数据,执行业务逻辑,并基于内部标准协议实现HTML5浏览器与第二协议实体间业务数据交互。
2.根据权利要求1所述的系统,其特征在于,所述第二协议实体为Flash客户端,所述第二协议数据格式为Flash客户端所支持的二进制协议数据格式。
3.根据权利要求1所述的系统,其特征在于,所述第一协议实体为HTML5浏览器客户端,所述第一协议数据格式为HTML5的WebSocket协议数据格式。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述第一协议转换实体和第二协议转换实体位于同一协议转换服务器中,所述协议转换服务器通过接入端口号来区分接入的客户端所采用的协议数据格式类型。
5.一种实现与超文本标记语言HTML5浏览器互通数据的方法,其特征在于,该方法包括HTML5浏览器客户端通过第一协议转换实体与业务逻辑处理实体进行数据交互;第一协议转换实体执行从HTML5协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到HTML5协议数据格式的转换;第二协议实体通过第二协议转换实体与业务逻辑处理实体进行数据交互;第二协议转换实体执行从第二协议数据格式到内部标准协议数据格式的转换,以及从内部标准协议数据格式到第二协议数据格式的转换;业务逻辑处理实体执行业务逻辑处理,并基于内部标准协议数据格式实现HTML5浏览器客户端与第二协议实体的数据交互。
6.根据权利要求5所述的方法,其特征在于,所述第二协议实体为Flash客户端,所述第二协议数据格式为Flash客户端所支持的二进制协议数据格式。
7.根据权利要求5所述的方法,其特征在于,所述第一协议实体为HTML5浏览器客户端,所述第一协议数据格式为HTML5的WebSocket协议数据格式。
8.根据权利要求5至7任一项所述的方法,其特征在于,将所述第一协议转换实体和第二协议转换实体集成于同一协议转换服务器中,所述协议转换服务器通过接入端口号来区分接入的客户端所采用的协议数据格式类型。
全文摘要
本发明公开了一种实现与HTML5浏览器互通数据的方法及系统,用于解决HTML5浏览器客户端与采用其它类型协议数据格式的客户端进行数据交互的技术问题。本发明通过协议转换实体将HTML5浏览器客户端和其它类型的客户端所采用的协议数据格式转换为内部标准协议数据格式,业务逻辑处理实体基于内部标准协议实现HTML5浏览器客户端与其它类型客户端数据之间的数据交互。通过本发明可以实现采用不同协议数据格式的客户端与HTML5浏览器客户端之间的数据交互,增强了业务系统的兼容性和可扩展性。
文档编号H04L29/06GK102469065SQ201010531968
公开日2012年5月23日 申请日期2010年11月2日 优先权日2010年11月2日
发明者陆遥 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1