著录项信息
专利名称 | 数据传输方法和装置 |
申请号 | CN201610555462.9 | 申请日期 | 2016-07-14 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-12-07 | 公开/公告号 | CN106209857A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 徐文超;沐建涛;张荣;嵇海波 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 董文倩;褚敏 |
摘要
本发明公开了一种数据传输方法和装置。其中,该方法包括:第一网页调用js逻辑创建采用全双工通讯的长连接;第一网页通过长连接向服务器传输第一数据,其中,第一数据由目标网页捕捉得到,目标网页嵌套在第一网页的iframe标签中;第一网页接收服务器通过长连接推送的第二数据,第二数据根据第一网页上报的第一数据生成,其中,在第一网页接收第二数据之前,第一网页不向服务器发送用于请求第二数据的数据请求;第一网页向目标网页发送第二数据。本发明解决了无法实时向第一网页推送消息的技术问题。
1.一种数据传输方法,其特征在于,包括:
第一网页调用js逻辑创建采用全双工通讯的长连接,其中,所述第一网页调用js逻辑创建采用全双工通讯的长连接包括:所述第一网页加载flash文件,其中,所述flash文件包括通过接口执行全双工通讯的执行逻辑;在所述flash文件声明所述接口后所述第一网页按照所述执行逻辑调用所述接口;所述第一网页调用所述接口向服务器发送连接请求;所述第一网页通过所述接口接收响应所述连接请求的连接响应,其中,在所述第一网页接收到所述连接响应后,确定所述第一网页完成创建所述采用全双工通讯的连接;
所述第一网页通过所述长连接向所述服务器传输第一数据,其中,所述第一数据由目标网页捕捉得到,所述目标网页嵌套在所述第一网页的iframe标签中;
所述第一网页接收所述服务器通过所述长连接推送的第二数据,所述第二数据根据所述第一网页上报的所述第一数据生成,其中,在所述第一网页接收所述第二数据之前,所述第一网页不向所述服务器发送用于请求所述第二数据的数据请求,其中,所述第一数据用于体现用户的行为习惯或者兴趣偏好,与所述第一数据相匹配的所述第二数据为用于匹配用户所需的数据;
所述第一网页向所述目标网页发送所述第二数据。
2.根据权利要求1所述的方法,其特征在于,所述第一网页调用js逻辑创建采用全双工通讯的长连接包括:
所述第一网页通过http协议向服务器发起握手请求;
所述第一网页检测所述服务器响应所述握手请求所发送的握手响应;
在所述第一网页检测到所述握手响应后,创建基于所述全双工通信的长连接。
3.根据权利要求1所述的方法,其特征在于,所述第一网页通过所述长连接向服务器传输第一数据包括:
所述第一网页调用所述flash文件声明的所述接口主动向所述服务器传输所述第一数据。
4.根据权利要求1所述的方法,其特征在于,所述第一网页接收所述服务器通过所述长连接推送的第二数据包括:
所述第一网页调用所述flash文件声明的所述接口接收所述服务器通过所述长连接推送的所述第二数据。
5.根据权利要求1所述的方法,其特征在于,在所述第一网页调用js逻辑创建采用全双工通讯的长连接之后,所述方法还包括:
所述第一网页调用flash的关闭所述长连接的关闭接口,其中,在所述关闭接口内部调用底层套接字关闭所述长连接。
6.根据权利要求1所述的方法,其特征在于,所述第一网页调用js逻辑创建采用全双工通讯的长连接包括:
所述第一网页创建websocket的全双工通讯的长连接或者调用flash web socket提供的接口执行全双工通讯。
7.一种数据传输装置,其特征在于,包括:
创建单元,用于在打开目标网页时调用js逻辑创建采用全双工通讯的长连接,其中,所述目标网页嵌套在第一网页的iframe标签中,所述创建单元包括:加载模块,用于加载flash文件,其中,所述flash文件包括通过接口执行全双工通讯的执行逻辑;第一调用模块,用于在所述flash文件声明所述接口后按照所述执行逻辑调用所述接口;第二调用模块,用于调用所述接口向服务器发送连接请求;响应模块,用于通过所述接口接收响应所述连接请求的连接响应,其中,在所述响应模块接收到所述连接响应后,确定所述第一网页完成创建所述采用全双工通讯的连接;
第一传输单元,用于通过所述长连接向所述服务器传输第一数据,所述第一数据由所述目标网页捕捉得到;
第二传输单元,用于接收所述服务器通过所述长连接推送的第二数据,所述第二数据根据所述第一网页上报的所述第一数据生成,其中,在所述第一网页接收所述第二数据之前,所述第一网页不向所述服务器发送用于请求所述第二数据的数据请求,其中,所述第一数据用于体现用户的行为习惯或者兴趣偏好,与所述第一数据相匹配的所述第二数据为用于匹配用户所需的数据;
发送单元,用于向所述目标网页发送所述第二数据。
8.根据权利要求7所述的装置,其特征在于,所述创建单元包括:
请求模块,用于通过http协议向服务器发起握手请求;
检测模块,用于检测所述服务器响应所述握手请求所发送的握手响应;
创建模块,用于在所述第一网页检测到所述握手响应后,创建基于所述全双工通信的长连接。
9.根据权利要求7所述的装置,其特征在于,所述第一传输单元包括:
第三调用模块,用于调用所述flash文件声明的所述接口主动向所述服务器传输所述第一数据。
10.根据权利要求7所述的装置,其特征在于,所述第二传输单元包括:
第四调用模块,用于调用所述flash文件声明的所述接口接收所述服务器通过所述长连接推送的所述第二数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
调用单元,用于在调用js逻辑创建采用全双工通讯的长连接之后,调用flash的关闭所述长连接的关闭接口,其中,在所述关闭接口内部调用底层套接字关闭所述长连接。
数据传输方法和装置\n技术领域\n[0001] 本发明涉及数据传输领域,具体而言,涉及一种数据传输方法和装置。\n背景技术\n[0002] 现有技术在进行数据传输时,通常采用服务器主动向第一网页推送数据的方式,第一网页只负责接收服务器推送的数据。服务器推送的数据是服务器基于多个第一网页收集的多个用户的数据得到的,然而,每个用户所需要获得的推送数据不同,现有的服务器无法精准的向用户推送数据。\n[0003] 针对上述的问题,目前尚未提出有效的解决方案。\n发明内容\n[0004] 本发明实施例提供了一种数据传输方法和装置,以至少解决无法精准的推送数据的技术问题。\n[0005] 根据本发明实施例的一个方面,提供了一种数据传输方法,包括:在打开目标网页时第一网页调用js逻辑创建采用全双工通讯的长连接,其中,所述目标网页嵌套在所述第一网页的iframe标签中;所述第一网页通过所述长连接向服务器传输第一数据,所述第一数据由所述目标网页捕捉得到;所述第一网页接收所述服务器通过所述长连接推送的第二数据,所述第二数据根据所述第一网页上报的所述第一数据生成,其中,在所述第一网页接收所述第二数据之前,所述第一网页不向所述服务器发送用于请求所述第二数据的数据请求;所述第一网页向所述目标网页发送所述第二数据。\n[0006] 根据本发明实施例的另一方面,还提供了一种数据传输装置,包括:创建单元,用于在打开目标网页时调用js逻辑创建采用全双工通讯的长连接,其中,所述目标网页嵌套在第一网页的iframe标签中;第一传输单元,用于通过所述长连接向服务器传输第一数据,所述第一数据由所述目标网页捕捉得到;第二传输单元,用于接收所述服务器通过所述长连接推送的第二数据,所述第二数据根据所述第一网页上报的所述第一数据生成,其中,在所述第一网页接收所述第二数据之前,所述第一网页不向所述服务器发送用于请求所述第二数据的数据请求;发送单元,用于向所述目标网页发送所述第二数据。\n[0007] 在本发明实施例中,第二数据是根据第一数据生成的,因此,向第一网页推送的第二数据是与第一网页收集的第一数据相匹配的,在第一数据体现用户的行为习惯或者兴趣偏好时,推送的第二数据可以精准匹配用户所需的数据,解决了现有技术无法精准推送数据的技术问题。进一步地,因为第一网页和服务器之间通过全双工通讯的长连接进行通信,服务器可以实时获取目标网页捕捉到的第一数据,也就能够实时根据第一数据生成第二数据,并实时将生成的第二数据推送给第一网页。在服务器推送第二数据的过程中,并不需要第一网页和目标网页向服务器发起数据请求,也就实现了服务器实时向第一网页推送第二数据,达到了实时、精准推送数据的效果。\n附图说明\n[0008] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n[0009] 图1是根据本发明实施例的硬件结构的示意图;\n[0010] 图2是根据本发明实施例的数据传输方法的流程图;\n[0011] 图3是根据本发明实施例的建立连接的时序图;\n[0012] 图4是根据本发明实施例的flash实现websocket开启长连接的时序图;\n[0013] 图5是根据本发明实施例的对采用flash实现全双工通讯的长连接进行发送、接收和关闭的时序图;\n[0014] 图6是根据本发明实施例的数据传输装置的示意图;\n[0015] 图7是根据本发明实施例终端的示意图。\n具体实施方式\n[0016] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。\n[0017] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。\n[0018] 名词解释:\n[0019] 连接:计算机网络中通讯双方建立的虚拟通讯线路。\n[0020] 协议:计算机网络中通讯双方在交互方式和数据格式上的一种约定。\n[0021] 全双工:计算机网络中通讯双方可以同时进行双向数据传输的一种传输模式。\n[0022] 实时推送:一种由服务器主动向第一网页发送数据的传输模式,不同于传统的第一网页请求服务器响应的模式,不需要第一网页的请求。\n[0023] Http:超文本传输协议,一种广泛应用的通讯协议。\n[0024] Websocket:一种在单个连接上进行全双工通讯的协议,相对于Http能更好地节省服务器资源和带宽并达到实时推送。\n[0025] 长连接:相对于Http通常使用的短连接形式,指第一网页和服务器长时间保持一条虚拟通讯线路。\n[0026] js代码:javascript脚本语言,提供了数据验证的基本功能。Javascript使网页增加互动性。\n[0027] iframe即HTML标签,作用是文档中的文档,或者浮动的框架。iframe元素会创建包含另外一个文档的内联框架,即行内框架。\n[0028] HTML:即超文本标记语言,标准通用标记语言下的一个应用。\n[0029] 实施例1\n[0030] 根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。\n[0031] 可选地,在本实施例中,上述数据传输方法可以应用于如图1所示的终端102和服务器104所构成的硬件环境中。如图1所示,客终端102通过网络与服务器104进行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,终端102可以是手机终端,也可以是PC终端、笔记本终端或平板电脑终端。\n[0032] 终端102上的第一网页与服务器104建立全双工通信的长连接,在目标网页嵌套在第一网页中,目标网页进行网页跳转页会在第一网页内进行跳转,目标网页的跳转并不会影响第一网页与服务器的连接,实现了目标网页与服务器的长连接。第一网页通过长连接将目标网页捕捉的第一发送给服务器104,第一网页通过长连接接收服务器104发送的第二数据,并将第二数据发送给目标网页,由于第二数据是根据第一数据生成的,因此,第二数据能够准确匹配用户的兴趣和喜好,从而实现了精准推送数据,解决了现有技术无法精准推送数据的技术问题。\n[0033] 本实施例提供了一种数据传输方法,该数据传输方法可以应用在图1所示的硬件环境中。\n[0034] 图2是根据本发明实施例的数据传输方法的流程图。如图2所示,该数据传输方法包括如下步骤:\n[0035] 步骤S202,第一网页调用js逻辑创建采用全双工通讯的长连接。\n[0036] 步骤S204,第一网页通过长连接向服务器传输第一数据,第一数据由第一网页捕捉得到,目标网页嵌套在第一网页的iframe标签中。\n[0037] 步骤S206,第一网页接收服务器通过长连接推送的第二数据,第二数据根据第一网页上报的第一数据生成,其中,在第一网页接收第二数据之前,第一网页不向服务器发送用于请求第二数据的数据请求。\n[0038] 步骤S208,第一网页向目标网页发送第二数据。\n[0039] 第一网页创建全双工通讯的长连接,全双工通讯可以实现通过同一条长连接同时向服务器上报数据和接收来自服务器的数据,并且长连接不需要第一网页向服务器请求数据,服务器可以在建立长连接后,主动向第一网页推送数据。\n[0040] 在本实施例中,第二数据是根据第一数据生成的,因此,向第一网页推送的第二数据是与第一网页收集的第一数据相匹配的,在第一数据体现用户的行为习惯或者兴趣偏好时,推送的第二数据可以精准匹配用户所需的数据,解决了现有技术无法精准推送数据的技术问题。进一步地,因为第一网页和服务器之间通过全双工通讯的长连接进行通信,服务器可以实时获取目标网页捕捉到的第一数据,也就能够实时根据第一数据生成第二数据,并实时将生成的第二数据推送给第一网页。在服务器推送第二数据的过程中,并不需要第一网页和目标网页向服务器发起数据请求,也就实现了服务器实时向第一网页推送第二数据,达到了实时、精准推送数据的效果。\n[0041] 在一些实施例中,用户A浏览目标网页时,对目标网页中的“汽车”相关的信息进行了点击、在关于汽车的广告部分停留了较长的时间,目标网页捕捉用户A的点击行为和浏览的停留时间(第一数据),并通过第一网页发送给服务器。服务器根据点击行为和浏览的停留时间确定出用户A对汽车比较感兴趣,生成汽车相关的广告信息、用户关注的汽车品牌的折扣信息等,服务器生成的这些信息作为第二数据发送给第一网页,第一网页转发广告信息和折扣信息给目标网页。\n[0042] 在另外一些实施例中,用户B浏览目标网页时,对目标网页中的对目标网页中的“美食”相关的信息进行了点击、在关于美食的广告部分停留了较长的时间,目标网页捕捉用户B的点击行为和浏览的停留时间(第一数据),并通过第一网页发送给服务器。服务器根据点击行为和浏览的停留时间确定出用户B对美食比较感兴趣,生成美食相关的广告信息、用户关注的美食品牌的折扣信息等,服务器生成的这些信息作为第二数据发送给第一网页,第一网页转发广告信息和折扣信息给目标网页。\n[0043] 由于本实施例的第二数据的推送是根据第一数据生成的,第一数据能够体现用户的兴趣和爱好,因此,服务器可以实时并且精准的推送用户需要的信息。\n[0044] 对于广告投放来说,可以实时且精准的向用户推送广告,推送广告的时刻是用户具有消费倾向的时候,因此,及时推送的广告能够在用户的消费冲动消失前促进用户的消费。\n[0045] 在本实施例中,为了实现实时向第一网页推送消息,第一网页与服务器建立长连接。在介绍本实施例的长连接之前,先介绍现有的长连接。现有的长连接主要是通过第一网页每隔一段时间发送一个心跳包至服务器刷新心跳时间。在网页上保持长连接与app应用的长连接不一样的地方在于,app应用从一个页面跳转到另外一个页面时,不需要断开网页再重连,而网页端从一个页面跳转到另外一个页面时需要经过一次连接断开再重连的过程,这就导致在页面跳转时长连接不能持续。\n[0046] 为了解决网页端的长连接不能持续的问题,本实施例在创建长连接时,将目标网页嵌套在第一页面的iframe标签中,建立第一页面与服务器的长连接,嵌套在iframe标签中的目标网页在iframe标签中执行跳转,iframe标签外部的第一网页与服务器保持的长连接并不会因为iframe标签内部目标网页的跳转而断开,从而保证了第一网页与服务器之间长连接的稳定性。\n[0047] 在本实施例中设置的iframe标签保证了长连接的持续性和稳定性,同时长连接是全双工通信,可以在第一网页和服务器之间实现长时间实时数据传输,也就是说,服务器可以实时根据第一网页捕捉的第一数据向第一网页端推送第二数据。另外,由于第一网页的捕捉是无侵入的方式,用户的操作不会被捕捉打扰,不会降低用户体验。\n[0048] 以下结合图3对本实施例进行说明。\n[0049] 301、用户通过网页运行游戏第一网页,访问游戏官网网页。\n[0050] 302、在网页打开时网页js与官网服务器建立采用全双工通信的长连接。\n[0051] 303、网页js发送用户相关信息。在一些例子中,网页收集当前用户的账号信息、用户当前浏览器的页面地址和用户在当前页面上的有效停留时间等。\n[0052] 304、官网服务器向推荐服务器发送用户实时画像,实时画像用来体现不同类的人群。在一些具体的例子中,通过实时画像来表示当前用户是对当前页面感兴趣的人群或者对当前页面不感兴趣的人群。\n[0053] 305、用户在页面执行操作。\n[0054] 306、网页js捕捉用户在网页上执行的操作,并将用户操作发送给官网服务器。\n[0055] 307、官方服务器更新用户的画像信息,并将更新后的信息发送给推荐服务器。\n[0056] 308、推荐服务器进行推荐分析处理。在一些实施例中,推荐服务器判断用户在当前页面上的有效停留时间是否大于预设有效停留时间,如果大于,则确定用户对当前页面感兴趣。分析当前页面展示的内容是某个游戏角色的皮肤或者装备信息,则确定该用户对该虚拟物品具有消费倾向,则在确定用户的消费倾向时确定需要向第一网页推送折扣信息。\n[0057] 309、推荐服务器向官网服务器推送折扣信息。\n[0058] 310、官网服务器向网页js实时推送折扣信息。\n[0059] 311、在第一网页向玩家展示折扣信息。在该实施例中,服务器实时向第一网页推送,在确定出用户具有消费倾向时实时向用户推送商品的折扣信息,提高用户的消费意愿。\n同时,由于推送的折扣信息更符合用户的消费心理,用户看到的折扣信息是与想要获得商品相关的信息,提高了用户体验。并且,在数据收集和服务器推送的过程中,不需要第一网页发送请求和接收响应,采用无侵入的方式不影响用户在第一网页的浏览体验。\n[0060] 在一些实施例中,上述游戏第一网页可以是即时通讯网页,如微信等。在用户浏览微信的朋友圈时,根据用户在朋友圈的某类信息的关注时间和点击量等实时为用户推送相关类别的新闻、商品信息等。\n[0061] 在一些实施例中,上述游戏第一网页还可以是视频网页。根据用户对某部影片的观看情况实时为用户推送相关影片的信息,或者实时为用户推送视频网页的会员优惠信息等。\n[0062] 可选地,本实施例中采用全双工通信的长连接可以是websocket的长连接,该websocket是一种通信协议,在借助http进行服务器和第一网页之间的握手后进行全双工通信。对于不支持websocket的第一网页,可以采用支持底层网络功能的flash实现websocket的协议,通过调用flash websocket提供的接口与服务器进行长连接通讯。即在打开目标网页时第一网页创建websocket的长连接或者调用flash web socket提供的接口执行长连接。\n[0063] 即第一网页创建长连接包括:第一网页加载flash文件,其中,flash文件包括通过接口执行全双工通讯的执行逻辑;在flash文件声明接口后第一网页按照执行逻辑调用接口;第一网页调用接口向服务器发送连接请求;第一网页通过接口接收响应连接请求的连接响应,其中,在第一网页接收到连接响应后,确定第一网页完成创建全双工通讯的连接。\n[0064] flash文件包括通过接口执行全双工通讯的执行逻辑,flash文件声明接口,使得第一网页可以调用接口与服务器的接口进行连接,实现全双工通讯。\n[0065] 以下结合图4对flash实现websocket开启长连接的时序进行说明。\n[0066] 401、网页加载swfobejct.js,以执行js逻辑。\n[0067] 402、js逻辑调用并加载flash文件,运行websocket facade。\n[0068] 403、websocket facade注册js调用的接口,即声明接口,为网页提供接口以便与服务器建立连接。\n[0069] 404、websocket facade通知js逻辑已完成初始化,即完成声明接口。\n[0070] 405、网页加载web_socket.js逻辑,注册js调用的接口。\n[0071] 406、页面创建js节点,即网页调用flash在403声明的接口。\n[0072] 407、创建websocket实例,即创建外部接口逻辑。\n[0073] 408、创建raw websocket实例,即创建内部API接口。\n[0074] 409、注册网络事件监听,以捕捉服务器发送的连接成功响应。\n[0075] 411、套接字连接。\n[0076] 412、底层触发连接成功事件。捕捉服务器返回的连接成功事件。\n[0077] 413、websocket facade将捕捉到的连接成功事件转发给js逻辑,完成全双工连接的实现。\n[0078] 需要说明的是,图4的示例页面可以是上述与服务器直接建立长连接的第一页面。\n在建立长连接的基础上又可以实现全双工通信,因此,第一网页调用flash文件声明的接口主动向服务器传输第一数据。第一网页可以实时向服务器主动传输第一数据。\n[0079] 可选地,第一网页调用flash文件声明的接口接收服务器通过长连接推送的第二数据。第一网页在不向服务器请求第二数据的情况下,也可以直接接收服务器主动发送的第二数据。\n[0080] 可选地,在创建采用全双工通讯的长连接之后,第一网页先调用flashws关闭长连接,再调用raw ws关闭长连接。\n[0081] 以下结合图5对采用flash实现全双工通讯的长连接进行发送、接收和关闭进行说明。\n[0082] 501、在页面上捕捉用户在页面上的操作行为(第一数据),并提交给页面的js逻辑。在一些实施例中,用户的操作行为包括点击、浏览和停留操作等。具体地,用户点击页面上的图片、视频或者选中文字等;用户在浏览页面时在页面上展示的某段文字、图片或者视频时停留一段时间等。\n[0083] 502、页面的js逻辑调用flash ws接口向websocket facade发送捕捉到的操作行为。\n[0084] 503、websocket facade调用raw ws发送操作行为给websocket实现。\n[0085] 504、websocket实现调用网络接口(图4的403中flash已经声明的接口)向服务器的接口发送操作的行为数据。在一些实施例中,调用已经声明的接口发送用户的点击和浏览数据等等。在一些实施例中,第二数据可以是商品的折扣优惠信息、用户兴趣相关的新闻和广告等。\n[0086] 505、websocket捕捉服务器返回的第二数据,通过已经声明的接口接收服务器返回的第二数据。websocket实现通过websocket facade将第二数据发送给页面的js逻辑,并展示在页面上。\n[0087] 上述过程是第一网页通过flash声明的接口主动发送第一数据,并且通过flash声明的接口接收服务器发送的第二数据。以下对结束创建的flash实现的全双工长连接进行说明。\n[0088] 506、页面向页面的js逻辑发送关闭的指令。\n[0089] 507、js逻辑调用flash ws关闭连接。\n[0090] 508、websocket facade调用raw ws关闭连接。\n[0091] 509、websocket实现关闭连接执行关闭事件,并将连接关闭的信息通过websocket facade发送给js逻辑,完成连接的关闭。\n[0092] 在上述过程中,对于支持websocket的第一网页可以执行基于websocket的全双工通讯的长连接,对于不支持websocket的第一网页执行基于flash的全双工通讯的长连接。\n[0093] 上述全双工通讯在连接时完成第一网页和服务器之间的握手后就可以进行数据传输,数据传输的过程无需第一网页或者服务器进行请求。也就是说,服务器在未接收到第一网页的请求的情况下可以通过长连接传输数据;第一网页在未接收到服务器的请求的情况下也可以通过长连接传输数据,第一网页可以通过全双工通讯的长连接同时发送和接收数据,实现了实时在第一网页和服务器之间进行数据传输。\n[0094] 由于本实施例提供了通过websocket和flash实现全双工通讯,可以针对不同的第一网页采用不同的实现方法,增强了本实施例的全双工通讯的兼容性。\n[0095] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。\n[0096] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。\n[0097] 实施例2\n[0098] 根据本发明实施例,还提供了一种用于实施上述数据传输方法的数据传输装置,该数据传输装置主要用于执行本发明实施例上述内容所提供的数据传输方法,以下对本发明实施例所提供的数据传输装置做具体介绍:\n[0099] 图6是根据本发明实施例的数据传输装置的示意图,如图6所示,该数据传输装置主要包括:\n[0100] 创建单元60用于在打开目标网页时调用js逻辑创建采用全双工通讯的长连接,其中,目标网页嵌套在第一网页的iframe标签中。\n[0101] 第一传输单元62用于通过长连接向服务器传输第一数据,第一数据由目标网页捕捉得到。\n[0102] 第二传输单元64用于接收服务器通过长连接推送的第二数据,第二数据根据第一网页上报的第一数据生成,其中,在第一网页接收第二数据之前,第一网页不向服务器发送用于请求第二数据的数据请求。\n[0103] 发送单元66用于向目标网页发送第二数据。\n[0104] 第一网页创建全双工通讯的长连接,全双工通讯可以实现通过同一条长连接同时向服务器上报数据和接收来自服务器的数据,并且长连接不需要第一网页向服务器请求数据,服务器可以在建立长连接后,主动向第一网页推送数据。\n[0105] 在本实施例中,第二数据是根据第一数据生成的,因此,向第一网页推送的第二数据是与第一网页收集的第一数据相匹配的,在第一数据体现用户的行为习惯或者兴趣偏好时,推送的第二数据可以精准匹配用户所需的数据,解决了现有技术无法精准推送数据的技术问题。进一步地,因为第一网页和服务器之间通过全双工通讯的长连接进行通信,服务器可以实时获取目标网页捕捉到的第一数据,也就能够实时根据第一数据生成第二数据,并实时将生成的第二数据推送给第一网页。在服务器推送第二数据的过程中,并不需要第一网页和目标网页向服务器发起数据请求,也就实现了服务器实时向第一网页推送第二数据,达到了实时、精准推送数据的效果。\n[0106] 在一些实施例中,用户A浏览目标网页时,对目标网页中的“汽车”相关的信息进行了点击、在关于汽车的广告部分停留了较长的时间,目标网页捕捉用户A的点击行为和浏览的停留时间(第一数据),并通过第一网页发送给服务器。服务器根据点击行为和浏览的停留时间确定出用户A对汽车比较感兴趣,生成汽车相关的广告信息、用户关注的汽车品牌的折扣信息等,服务器生成的这些信息作为第二数据发送给第一网页,第一网页转发广告信息和折扣信息给目标网页。\n[0107] 在另外一些实施例中,用户B浏览目标网页时,对目标网页中的对目标网页中的“美食”相关的信息进行了点击、在关于美食的广告部分停留了较长的时间,目标网页捕捉用户B的点击行为和浏览的停留时间(第一数据),并通过第一网页发送给服务器。服务器根据点击行为和浏览的停留时间确定出用户B对美食比较感兴趣,生成美食相关的广告信息、用户关注的美食品牌的折扣信息等,服务器生成的这些信息作为第二数据发送给第一网页,第一网页转发广告信息和折扣信息给目标网页。\n[0108] 由于本实施例的第二数据的推送是根据第一数据生成的,第一数据能够体现用户的兴趣和爱好,因此,服务器可以实时并且精准的推送用户需要的信息。\n[0109] 对于广告投放来说,可以实时且精准的向用户推送广告,推送广告的时刻是用户具有消费倾向的时候,因此,及时推送的广告能够在用户的消费冲动消失前促进用户的消费。\n[0110] 在本实施例中,为了实现实时向第一网页推送消息,第一网页与服务器建立长连接。在介绍本实施例的长连接之前,先介绍现有的长连接。现有的长连接主要是通过第一网页每隔一段时间发送一个心跳包至服务器刷新心跳时间。在网页上保持长连接与app应用的长连接不一样的地方在于,app应用从一个页面跳转到另外一个页面时,不需要断开网页再重连,而网页端从一个页面跳转到另外一个页面时需要经过一次连接断开再重连的过程,这就导致在页面跳转时长连接不能持续。\n[0111] 为了解决网页端的长连接不能持续的问题,本实施例在创建长连接时,将目标网页嵌套在第一页面的iframe标签中,建立第一页面与服务器的长连接,嵌套在iframe标签中的目标网页在iframe标签中执行跳转,iframe标签外部的第一网页与服务器保持的长连接并不会因为iframe标签内部目标网页的跳转而断开,从而保证了第一网页与服务器之间长连接的稳定性。\n[0112] 在本实施例中设置的iframe标签保证了长连接的持续性和稳定性,同时长连接是全双工通信,可以在第一网页和服务器之间实现长时间实时数据传输,也就是说,服务器可以实时根据第一网页捕捉的第一数据向第一网页端推送第二数据。另外,由于第一网页的捕捉是无侵入的方式,用户的操作不会被捕捉打扰,不会降低用户体验。\n[0113] 可选地,创建单元包括:请求模块,用于通过http协议向服务器发起握手请求;检测模块,用于检测服务器响应握手请求所发送的握手响应;创建模块,用于在第一网页检测到握手响应后,创建基于全双工通信的长连接。\n[0114] 在建立websocket的全双工通讯时,只需要借助http协议向服务器发起握手请求,完成与服务器的握手后,就能够实时进行双工通讯了。\n[0115] 可选地,创建单元包括:加载模块,用于加载flash文件,其中,flash文件包括通过接口执行全双工通讯的执行逻辑;第一调用模块,用于在flash文件声明接口后按照执行逻辑调用接口;第二调用模块,用于调用接口向服务器发送连接请求;响应模块,用于通过接口接收响应连接请求的连接响应,其中,在响应模块接收到连接响应后,确定第一网页完成创建采用全双工通讯的连接。\n[0116] 可选地,第一传输单元包括:第三调用模块,用于调用flash文件声明的接口主动向服务器传输第一数据。\n[0117] 可选地,第二传输单元包括:第四调用模块,用于调用flash文件声明的接口接收服务器通过长连接推送的第二数据。\n[0118] 可选地,装置还包括:调用单元,用于在调用js逻辑创建采用全双工通讯的长连接之后,调用flash的关闭长连接的关闭接口,其中,在关闭接口内部调用底层套接字关闭长连接。\n[0119] 在一些实施例中,上述游戏第一网页可以是即时通讯网页,如微信等。在用户浏览微信的朋友圈时,根据用户在朋友圈的某类信息的关注时间和点击量等实时为用户推送相关类别的新闻、商品信息等。\n[0120] 在一些实施例中,上述游戏第一网页还可以是视频网页。根据用户对某部影片的观看情况实时为用户推送相关影片的信息,或者实时为用户推送视频网页的会员优惠信息等。\n[0121] 实施例3\n[0122] 根据本发明实施例,还提供了一种用于实施上述数据传输方法的终端,如图7所示,该终端主要包括处理器701、摄像头702、显示器703、数据接口704、存储器705和网络接口706,其中:\n[0123] 摄像头702主要用于采集用户的身份信息和头像信息等。\n[0124] 数据接口704则主要通过数据传输的方式将第三方工具获取的数据传输给处理器\n701。\n[0125] 存储器705主要用于网页的逻辑和用户的操作行为数据。\n[0126] 网络接口706主要用于与服务器进行网络通信,为数据传输提供支持。\n[0127] 显示器703主要用于显示目标网页和第二数据。\n[0128] 处理器701主要用于执行如下操作:\n[0129] 在打开目标网页时第一网页调用js逻辑创建采用全双工通讯的长连接,其中,目标网页嵌套在第一网页的iframe标签中;第一网页通过长连接向服务器传输第一数据,第一数据由目标网页捕捉得到;第一网页接收服务器通过长连接推送的第二数据,第二数据根据第一网页上报的第一数据生成,其中,在第一网页接收第二数据之前,第一网页不向服务器发送用于请求第二数据的数据请求;第一网页向目标网页发送第二数据。\n[0130] 处理器701还用于第一网页通过http协议向服务器发起握手请求;第一网页检测服务器响应握手请求所发送的握手响应;在第一网页检测到握手响应后,创建基于全双工通信的长连接。\n[0131] 处理器701还用于:第一网页加载flash文件,其中,flash文件包括通过接口执行全双工通讯的执行逻辑;在flash文件声明接口后第一网页按照执行逻辑调用接口;第一网页调用接口向服务器发送连接请求;第一网页通过接口接收响应连接请求的连接响应,其中,在第一网页接收到连接响应后,确定第一网页完成创建采用全双工通讯的连接。\n[0132] 处理器701还用于:第一网页调用flash文件声明的接口主动向服务器传输第一数据。\n[0133] 处理器701还用于:第一网页调用flash文件声明的接口接收服务器通过长连接推送的第二数据。\n[0134] 处理器701还用于:第一网页调用flash的关闭长连接的关闭接口,其中,在关闭接口内部调用底层套接字关闭长连接。\n[0135] 处理器701还用于:第一网页创建websocket的全双工通讯的长连接或者调用flash web socket提供的接口执行全双工通讯。\n[0136] 可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。\n[0137] 实施例4\n[0138] 本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的数据传输方法的程序代码。\n[0139] 可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。\n[0140] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:\n[0141] S1,在打开目标网页时第一网页调用js逻辑创建采用全双工通讯的长连接;\n[0142] S2,所述第一网页通过所述长连接向服务器传输第一数据;\n[0143] S3,所述第一网页接收所述服务器通过所述长连接推送的第二数据;\n[0144] S4,所述第一网页向所述目标网页发送所述第二数据。\n[0145] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。\n[0146] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:第一网页通过http协议向服务器发起握手请求;第一网页检测服务器响应握手请求所发送的握手响应;在第一网页检测到握手响应后,创建基于全双工通信的长连接。\n[0147] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:第一网页加载flash文件,其中,flash文件包括通过接口执行全双工通讯的执行逻辑;在flash文件声明接口后第一网页按照执行逻辑调用接口;第一网页调用接口向服务器发送连接请求;\n第一网页通过接口接收响应连接请求的连接响应,其中,在第一网页接收到连接响应后,确定第一网页完成创建采用全双工通讯的连接。\n[0148] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:第一网页调用flash文件声明的接口主动向服务器传输第一数据。\n[0149] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:第一网页调用flash文件声明的接口接收服务器通过长连接推送的第二数据。\n[0150] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:第一网页调用flash的关闭长连接的关闭接口,其中,在关闭接口内部调用底层套接字关闭长连接。\n[0151] 可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。\n[0152] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。\n[0153] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。\n[0154] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。\n[0155] 在本申请所提供的几个实施例中,应该理解到,所揭露的第一网页,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。\n[0156] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。\n[0157] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。\n[0158] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2019-04-12
- 2017-01-04
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201610555462.9
申请日: 2016.07.14
- 2016-12-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2014-08-20
|
2013-02-20
| | |
2
| |
2013-12-11
|
2013-07-31
| | |
3
| |
2016-01-27
|
2015-09-09
| | |
4
| |
2012-07-11
|
2010-12-14
| | |
5
| | 暂无 |
1987-07-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |