websocket通信 h5flash 兼容ie

摘要:
不用说,H5新功能websocket受到现代浏览器的支持,可以立即使用。启动对套接字连接地址的请求。编写方法Security以在********中加载策略文件。swf当加载PolicyFile时,flash将根据此路径加载策略文件。Flash将在您要创建的套接字链接的域和端口下加载策略文件。Flash将尝试依次执行上述三种方法。如果其中一个成功加载策略文件,则不会使用以下方法。

H5新功能websocket不用说了,现代浏览器都支持,拿起来就可以用。接下来主要分享下socket通信兼容ie:

方案:flash socket;

前段代码:https://github.com/gimite/web-socket-js;

主要用到里面的3个文件:swfobject.js;web_socket.js;WebSocketMain.swf/WebSocketMainInsecure.swf;

这个方案兼容了websocket和flash socket;

websocket通信 h5flash 兼容ie第1张

 如果您的html与*.swf不在同一个域,*.swf文件就要改用WebSocketMainInsecure.swf

websocket通信 h5flash 兼容ie第2张

假如现在在ie8上运行:那么这个flash socket会做两件事情:

1:请求 策略文件也就是crossdomain.xml。

2:根据请求策略文件的结果决定是否发起socket链接请求。

flash 有3中方法完成第一件事情:(1) 请求 加载******.swf的域的843端口(843是flash默认的),与843端口建立连接,发送字符串"<policy-file-request/>"到843端口,如果返回crossdomain.xml或者是xml的内容字符串,flash会检测你要发起的socket请求的域和端口是否在xml文件允许范围内,如果在。就断开当前与843端口的链接。发起你socket连接地址的请求(example.com:10081)。websocket通信 h5flash 兼容ie第3张

(2) 在****.swf内部写入加载策略文件的方法 Security.loadPolicyFile(“xmlsocket://www.xxx.com:1234”),flash就会按照这个路径加载策略文件,

(3)flash到你要建立的socket链接的域和端口下加载策略文件,

上面的3种方法,flash会依次尝试去做,如果哪一个成功加载了策略文件,后面的方法就不会使用了。接下来做第二件事情:

根据返回的策略文件内容 和 接下来要发起的socket连接对比。

websocket通信 h5flash 兼容ie第2张

检测websocket通信 h5flash 兼容ie第3张域:example.com和端口:10081,是否在允许请求,如果允许flash会发起socket连接请求。不允许的话会报错。

如果报错说,html的域要与***.swf的与一样的话就在 new socket('.....')之前加上这一句:WEB_SOCKET_SUPPRESS_CROSS_DOMAIN_SWF_ERROR = true;



 flash做的两件事情就是建立两个tcp连接,第一个加载策略文件的tcp,加载成功与否最后都会断开,第二个实现socket通信,两个tcp通信可以完全不相干,不在同一个域和端口下。

 
 

免责声明:文章转载自《websocket通信 h5flash 兼容ie》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centso 7 Keepalived 配置脚本In aggregated query without GROUP BY, expression #1 of SELECT list contains下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

TCP连接中存在大量TIME_WAIT、CLOSE_WAIT的原因

TIME_WAIT   表示客户端主动关闭socket。   原因: 大量的短连接存在 特别是 HTTP 请求中,如果 connection 头部取值被设置为 close 时,基本都由服务端发起主动关闭连接 TCP 四次挥手关闭连接机制中,为了保证 ACK 重发和丢弃延迟数据,设置 time_wait 为 2 倍的 MSL(报文最大存活时间)   后果...

使用Python控制IE访问网站

这里介绍一下怎样利用Python 2.7和Python Win32 Extensions来控制浏览器访问一个网页。 首先需要到Python的官网下载Python 2.7.3 Windows Installer,下载后文件名为python-2.7.3.msi。 接着到Python Win32 Extensions的官网(http://starship.pyt...

【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方面的内容,也有做过一些Demo(包括整理出来的、可供学习使用的...

socket---异常

Socket异常 客户端异常 1 java.net.ConnectException: Connection refused: connect。 该异常发生在客户端进行new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听。...

Python 网络通信协议(互联网协议)

一. 操作系统基础 操作系统(Operatin System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 计算机组成: 硬件-->操作系统(OS)-->应用软件 二. 网络通信原理(参考文档) 2.1 互联网的本质就是一系列网络协议(1)概述当...

网络通信框架Retrofit2

网络通信框架Retrofit2 1 概要 Retrofit2的简介以及特点 Retrofit2使用配置(导包,权限等) Retrofit2中常用的注解介绍 Retrofit2实现http网络访问 GET与POST请求 同步请求和异步请求 Retrofit2实现文件上传 Retrofit2进行大文件下载 2 Retrofit2的特点及简介 简介 Retrof...