CN103685269B - 一种web浏览器与服务器进行双向通讯的方法和系统 - Google Patents

一种web浏览器与服务器进行双向通讯的方法和系统 Download PDF

Info

Publication number
CN103685269B
CN103685269B CN201310673215.5A CN201310673215A CN103685269B CN 103685269 B CN103685269 B CN 103685269B CN 201310673215 A CN201310673215 A CN 201310673215A CN 103685269 B CN103685269 B CN 103685269B
Authority
CN
China
Prior art keywords
web browser
server
communication
iframe
way communication
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.)
Expired - Fee Related
Application number
CN201310673215.5A
Other languages
English (en)
Other versions
CN103685269A (zh
Inventor
陈龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TCL Corp
Original Assignee
TCL Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TCL Corp filed Critical TCL Corp
Priority to CN201310673215.5A priority Critical patent/CN103685269B/zh
Publication of CN103685269A publication Critical patent/CN103685269A/zh
Application granted granted Critical
Publication of CN103685269B publication Critical patent/CN103685269B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开一种web浏览器与服务器进行双向通讯的方法和系统,其中,方法包括步骤:A、调用通用API,进行初始化;B、对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯。本发明通过对当前运行环境进行识别,判断web浏览器是否支持html5、Flash插件、iframe,进而智能选择使用Websocket通讯方式、Flashsocket通讯方式、iframe长连接通讯方式或者Ajax长轮询通讯方式,从而使本发明的通讯方法可以兼容市面上各种web浏览器。

Description

一种web浏览器与服务器进行双向通讯的方法和系统
技术领域
本发明涉及计算机软件领域,尤其涉及一种web浏览器与服务器进行双向通讯的方法和系统。
背景技术
web浏览器具有检索查询、文件服务、热表管理机离线浏览等等功能,而服务器则具有静态信息分布和动态信息分布等功能,web浏览器与服务器之间的双向通讯方式有多种,例如长轮询、长连接、Flashsocket及Websocket等通讯方式,但由于客户端web浏览器的种类及版本的不同,这些通讯方式无法兼容市面上的不同web浏览器。因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种web浏览器与服务器进行双向通讯的方法和系统,旨在解决现有通讯方法无法兼容不同web浏览器的问题。
本发明的技术方案如下:
一种web浏览器与服务器进行双向通讯的方法,其中,包括步骤:
A、调用通用API,进行初始化;
B、对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的方法,其中,所述步骤B中,当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的方法,其中,所述步骤B中,当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的方法,其中,所述步骤B中,当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯。
一种web浏览器与服务器进行双向通讯的系统,其中,包括:
初始化模块,用于调用通用API,进行初始化;
Websocket通讯模块,用于对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的系统,其中,还包括:
Flashsocket通讯模块,用于当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的系统,其中,还包括:
iframe长连接通讯模块,用于当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯。
所述的web浏览器与服务器进行双向通讯的系统,其中,还包括:
Ajax长轮询通讯模块,用于当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯。
有益效果:本发明通过对当前运行环境进行识别,判断web浏览器是否支持html5、Flash插件、iframe,进而智能选择使用Websocket通讯方式、Flashsocket通讯方式、iframe长连接通讯方式或者Ajax长轮询通讯方式,从而使本发明的通讯方法可以兼容市面上各种web浏览器。
附图说明
图1为本发明的web浏览器与服务器进行双向通讯的方法较佳实施例的流程图。
图2为本发明的web浏览器与服务器进行双向通讯的方法另一较佳实施例的流程图。
图3为本发明的web浏览器与服务器进行双向通讯的系统较佳实施例的结构框图。
图4为本发明的web浏览器与服务器进行双向通讯的系统另一较佳实施例的结构框图。
具体实施方式
本发明提供一种web浏览器与服务器进行双向通讯的方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种web浏览器与服务器进行双向通讯的方法,其包括步骤:
S101、调用通用API,进行初始化;
S102、对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯。
其中的Websocket通讯方式是下一代客户端与服务器之间的异步通信方法,该通信方法取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序,Websocket通讯方式由W3C进行标识,该该通讯方式必须是支持html5的web浏览器才能使用,而像IE8、IE7、IE6等老版本的浏览器则不能使用,所以本实施例可通过判断web浏览器是否支持html5,来选择是否使用Websocket通讯方式与服务器进行双向通讯,若支持的话,则web浏览器可通过Websocket通讯方式与服务器进行双向通讯。
在所述步骤S102中,当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯。
Flashsocket通讯方式是在页面中嵌入了一个使用了Socket类的Flash程序,JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传来的信息后控制页面的显示,这种通讯方式要满足:需在客户端安装Flash插件,只有安装了Flash插件,才能采用该通讯方式,所以此步骤可通过判断web浏览器是否支持Flash插件来选择是否使用Flashsocket通讯方式,当支持时,则使用Flashsocket通讯方式与服务器进行双向通讯。
在所述步骤S102中,当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯。
iframe长连接通讯方式是在页面里嵌入了一个隐藏iframe,将这个iframe的src属性设为对一个长连接的请求或者采用xhr请求,服务器端就能源源不断地往客户端输入数据,这种通讯方式需满足浏览器支持iframe,所以此步骤判断web浏览器是否支持iframe,若支持的话,则使用此通讯方式与服务器进行双向通讯。
在所述步骤102中,当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯。
Ajax长轮询通讯方式是由客户端向服务器发送Ajax请求,服务器接收到请求后保持连接,直到有新消息才返回响应消息并关闭连接,客户端处理完响应消息再向服务器发送新的请求,在web浏览器均不支持html5、Flash插件、iframe的情况下,可选择这种通讯方式与服务器进行通讯。
下面提供一具体实施例来对本发明优选方案进行说明,如图2所示,包括:
S201、开始;
S202、调用通用API,进行初始化;
S203、对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯,当否时进入步骤S204;
S204、判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯,当否时进入步骤S205;
S205、判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯,当否时进入步骤S206;iframe长连接通讯方式中,服务器维护一个长连接会增加开销,所以在上述两种通讯方式无法实现的情况下,采用此iframe长连接通讯方式与服务器进行双向通讯。
S206、使用Ajax长轮询通讯方式与服务器进行双向通讯;由于Ajax长轮询通讯方式中,存在服务器保持连接会消耗资源、返回数据无顺序保证导致难以管理维护的缺点,所以在上述通讯方式均无法实现的情况下,采用此种通讯方式。
S207、完成与服务器的连接,进行双向通讯;
S208、结束。
在上述步骤中,整个判断步骤和通讯方式的选择对外是不可见的,web开发人员可不用关心底层是什么技术,浏览器是否兼容,只需调用API接口,从而减少了开发人员的开发时间和提高了效率。
本发明的方法是通过三大模块实现的,如图3所示:
底层通讯模块10,其是对底层各种通讯方式和技术的封装和实现,包括websocket通讯方式、Flashsocket通讯方式、ifame长连接通讯方式、Ajax长轮询通讯方式,在调用的时候,可通过当前运行环境,选择相应的通讯方式。
通用通讯模块20,其封装了常用的通讯业务,例如通讯中数据内容的格式化、序列化、加密和解密、日志处理等。
API模块30,向外提供一套统一的API,包括创建连接、关闭连接、断开连接、发送数据、接收数据等。
本发明还提供一种web浏览器与服务器进行双向通讯的系统,如图4所示,其包括:
初始化模块100,用于调用通用API,进行初始化;
Websocket通讯模块200,用于对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯。
进一步,所述系统还包括:
Flashsocket通讯模块300,用于当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯。
进一步,所述系统还包括:
iframe长连接通讯模块400,用于当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯。
进一步,所述系统还包括:
Ajax长轮询通讯模块500,用于当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯。关于上述模块的技术细节在前面的方法中已有详述,故不再赘述。
综上所述,本发明通过对当前运行环境进行识别,判断web浏览器是否支持html5、Flash插件、iframe,进而智能选择使用Websocket通讯方式、Flashsocket通讯方式、iframe长连接通讯方式或者Ajax长轮询通讯方式,从而使本发明的通讯方法可以兼容市面上各种web浏览器。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (2)

1.一种web浏览器与服务器进行双向通讯的方法,其特征在于,包括步骤:
A、调用通用API,进行初始化;
B、对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯;
所述步骤B中,当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯;
所述步骤B中,当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯;
所述步骤B中,当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯;
iframe长连接通讯方式是在页面里嵌入了一个隐藏iframe,将所述iframe的src属性设为对一个长连接的请求或者采用xhr请求。
2.一种web浏览器与服务器进行双向通讯的系统,其特征在于,包括:
初始化模块,用于调用通用API,进行初始化;
Websocket通讯模块,用于对当前运行环境进行识别,判断web浏览器是否支持html5,当是时使用Websocket通讯方式与服务器进行双向通讯;
还包括:
Flashsocket通讯模块,用于当web浏览器不支持html5时,判断web浏览器是否支持Flash插件,当是时使用Flashsocket通讯方式与服务器进行双向通讯;
还包括:
iframe长连接通讯模块,用于当web浏览器不支持Flash插件时,判断web浏览器是否支持iframe,当是时使用iframe长连接通讯方式与服务器进行双向通讯;
还包括:
Ajax长轮询通讯模块,用于当web浏览器不支持iframe时,使用Ajax长轮询通讯方式与服务器进行双向通讯;
iframe长连接通讯方式是在页面里嵌入了一个隐藏iframe,将所述iframe的src属性设为对一个长连接的请求或者采用xhr请求。
CN201310673215.5A 2013-12-12 2013-12-12 一种web浏览器与服务器进行双向通讯的方法和系统 Expired - Fee Related CN103685269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310673215.5A CN103685269B (zh) 2013-12-12 2013-12-12 一种web浏览器与服务器进行双向通讯的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310673215.5A CN103685269B (zh) 2013-12-12 2013-12-12 一种web浏览器与服务器进行双向通讯的方法和系统

Publications (2)

Publication Number Publication Date
CN103685269A CN103685269A (zh) 2014-03-26
CN103685269B true CN103685269B (zh) 2017-12-12

Family

ID=50321584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310673215.5A Expired - Fee Related CN103685269B (zh) 2013-12-12 2013-12-12 一种web浏览器与服务器进行双向通讯的方法和系统

Country Status (1)

Country Link
CN (1) CN103685269B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103945003B (zh) * 2014-05-06 2017-06-06 北京邮电大学 一种WebRTC客户端连接动态自适应选择的方法
CN105897790A (zh) * 2014-11-19 2016-08-24 吴沉立 一种基于web的反向数据交互方法
CN104735151A (zh) * 2015-03-30 2015-06-24 努比亚技术有限公司 进度条的控制方法、装置和系统
CN105827709A (zh) * 2016-03-31 2016-08-03 广东亿迅科技有限公司 一种web语音话务系统实时话务状态的实现方法
CN106060128B (zh) * 2016-05-25 2019-05-10 飞天诚信科技股份有限公司 一种浏览器访问智能密钥设备的方法及装置
CN106201375B (zh) * 2016-07-01 2019-02-19 浪潮通用软件有限公司 一种基于WebSocket的网络共享打印控制的方法
CN107632988A (zh) 2016-07-18 2018-01-26 杭州海康威视数字技术股份有限公司 浏览器语音发送和接收方法、装置及语音对讲系统
CN108322385A (zh) * 2018-01-19 2018-07-24 论客科技(广州)有限公司 一种新邮件到达通知方法、系统与装置
CN109068153B (zh) * 2018-09-28 2020-10-16 华为技术有限公司 视频播放方法、装置和计算机可读存储介质
CN109344312A (zh) * 2018-10-11 2019-02-15 广州鼎甲计算机科技有限公司 基于全双工通信协议的数据交互方法和系统
CN109587210B (zh) * 2018-10-22 2021-04-20 太原市高远时代科技有限公司 一种多浏览器兼容的信息推送的实现方法
CN112491993A (zh) * 2020-11-17 2021-03-12 中信银行股份有限公司 通讯的建立方法、装置、电子设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761564A (zh) * 2011-04-25 2012-10-31 阿里巴巴集团控股有限公司 图形共享方法、系统与终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
CN102163308B (zh) * 2011-04-18 2012-11-21 中国科学院计算技术研究所 一种流程业务数据上传系统及上传方法
CN103139051A (zh) * 2013-03-22 2013-06-05 南京信通科技有限责任公司 一种基于Websocket协议的即时通讯方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761564A (zh) * 2011-04-25 2012-10-31 阿里巴巴集团控股有限公司 图形共享方法、系统与终端

Also Published As

Publication number Publication date
CN103685269A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN103685269B (zh) 一种web浏览器与服务器进行双向通讯的方法和系统
WO2017190641A1 (zh) 拦截爬虫的方法、装置、服务器终端以及计算机可读介质
CN102291437A (zh) 跨平台互联网应用的实现系统及方法
CN104199723B (zh) 基于虚拟设备的摄像头映射方法
CN105940409A (zh) 网络服务沙箱系统
WO2009029404A2 (en) Secure inter-module communication mechanism
CN102043832A (zh) 一种网页上实现跨域请求回调的方法
CN101964763B (zh) 消息处理方法
CN109542427A (zh) 一种系统定制方法、装置及电子设备和存储介质
CN105205072B (zh) 网页信息的展示方法和系统
CN107274222B (zh) 广告投放方法及装置
WO2015021873A1 (en) Method, platform server, and system of data pushing
CN110808868B (zh) 测试数据获取方法、装置、计算机设备及存储介质
CN103051716A (zh) 一种面向网络的串口设备重定向的方法及系统
US20160124829A1 (en) Agent dynamic service
CN104144185A (zh) 数据通信方法、装置及终端
CN103873452A (zh) 一种利用pc浏览器连接安卓设备的方法及系统
CN114357457A (zh) 漏洞检测方法、装置、电子设备和存储介质
CN103441925B (zh) 家庭网关设备及在家庭网关设备上挂载存储设备的方法
CN105119764A (zh) 用于流量监控的方法和装置
CN102148869B (zh) Java应用程序向本地传递信息的方法及设备
CN104219795A (zh) 无线接入终端驱动方法、装置及终端
CN112379938A (zh) 一种基于国产操作系统的跨浏览器安全调用本地应用方法
CN105338091A (zh) 高传输效率的个性化信息界面显示方法和装置
CN102880508A (zh) 一种实现PC操控Android终端的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171212

CF01 Termination of patent right due to non-payment of annual fee