1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java websocket ie8_解决WebSocket兼容ie浏览器版本问题

java websocket ie8_解决WebSocket兼容ie浏览器版本问题

时间:2022-09-24 05:19:24

相关推荐

java websocket ie8_解决WebSocket兼容ie浏览器版本问题

在使用Netty进行WebSocket开发时,测试发现:ie 11系列个别低版本连接WebSocket后立即自动断开了连接。如,ie 11.0.38。

1.调试

后台日志打印:

WebSocket handlerAdded

handlerAdded---WS管道标识:00000000000000e0-00002520-0000001b-e9a4ab6f2de6f7bb-aa79b5c5

WebSocket channelActive

WebSocket channelRead0

WebSocket channelReadComplete

WebSocket channelInactive

WebSocket handlerRemoved

handlerRemoved---WS管道标识:00000000000000e0-00002520-0000001b-e9a4ab6f2de6f7bb-aa79b5c5

WebSocket handlerAdded

handlerAdded---WS管道标识:00000000000000e0-00002520-0000001c-c5d7cd14ade6fbc9-50bf51ea

WebSocket channelActive

WebSocket channelRead0

WebSocket channelReadComplete

WebSocket channelInactive

WebSocket handlerRemoved

handlerRemoved---WS管道标识:00000000000000e0-00002520-0000001c-c5d7cd14ade6fbc9-50bf51ea

发现,WebSocket客户端连接服务器后,立即触发了断开事件,是什么原因呢?

debug,问题锁定代码块:

2.思考

在判断是否可升级成WebSocket协议时,发现该Http协议无法升级成ws协议,从而返回异常。

难道该ie版本不支持WebSocket?换成javaee-api-7.0.jar或者tomcat自带的websocket包测试都通过,所以确定该版本还是兼容WebSocket的。

目前各浏览器支持的WebSocket版本和服务器netty的WebSocket版本都是13。到底是什么原因呢?

在不同浏览器下测试看看,打印:req.getDecoderResult().isSuccess()和req.headers().get("Upgrade")的值到底是什么。!!!

3.解决

测试结果:

用其他浏览器测试,打印结果都是:true;websocket

唯独用ie 11系列个别版本测试,打印的结果是:true;Websocket

让人很无语的发现,其中Websocket的W是大写的。为什么ie 11系列里面有的版本是跟主流浏览器一样是websocket,个别低版本却是Websocket。

这应该就是跟ie11系列各种问题,所以才出了那么多版本的问题吧。

当然,解决问题的方法显而易见了。将equals该为equalsIgnoreCase。

后面会将WebSocket系列和Netty系列补上,有兴趣的可关注。

如果此文对您有帮助,微信打赏我一下吧~

WebSocket兼容到低版本浏览器

就目前而言,WebSocket是最好的Web通信解决方案了.但是IE从10才开始兼容它,对于目前大量IE8存在的市场,原生的WebSocket显然不太实用,我们需要低版本兼容的解决方案.于是我模拟We ...

解决Selenium与firefox浏览器版本不兼容问题

因为在用java打开firefox浏览器的时候报错 org.openqa.selenium.firefox.NotConnectedException: Unable to connect to ho ...

Ajax的完整兼容各种浏览器版本代码

AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器

AngularJS本地化,国际化 国际化,简写为i18n,指的是使产品快速适应不同语言和文化. 本地化,简称l10n,是指使产品在特定文化和语言市场中可用. 对开发者来说,国际化一个应用意味着将所有的 ...

angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器

angularjs兼容低版本IE浏览器(IE8)angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量 ...

Visual Studio 出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法

参考:Visual Studio 出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs的下载地址: /en ...

html5调用本机摄像头兼容谷歌浏览器高版本,谷歌浏览器低版本,火狐浏览器

做这个功能的时候在网上查了一些资料,代码如下,在这个代码在谷歌浏览器46版本是没问题的,在火狐浏览器也行,但是在谷歌浏览器高版本下是不兼容的

超出字数部分省略(主要解决不兼容;display: -webkit-box;的浏览器)

注明:内容于/chentongtong/p/5474553.html进一步整理. 1.现webkit内核的浏览器支持display: -webkit-box ...

多行文字超出字数部分省略(主要解决不兼容;display: -webkit-box;的浏览器)

注明:内容来处/ss977/p/5846176.html 1.现webkit内核的浏览器支持display: -webkit-box;属性, 所以网页中显 ...

随机推荐

sql server 跨服务器查询

exec sp_addlinkedserver 'ITSV','','SQLOLEDB','192.168.202.53' exec sp_addlinkedsrvlogin 'ITSV','fals ...

Android SDK Manager 更新不了文件 提示https://dl-ssl.google.com refused

sdk manager无法自动更新,总在提示超时!!!SDK更新时的“https://dl- refused”错误 解决方法: 在Android SDK Manager-& ...

[转].net 使用NPOI或MyXls把DataTable导出到Excel

本文转自:/yongfa365/archive//05/10/NPOI-MyXls-DataTable-To-Excel-From-Excel.ht ...

-Android的发展webservice-号码归属地查询

代码地址:/detail/jiangliqing1234/8027039 流程具体解释:/lyq8479/art ...

在windows server里,对于同一个账号,禁止或允许多个用户使用该账户,同时登录

开始 -> 运行 -> gpedit.msc -> 本地计算机 策略 -> 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -&g ...

Activiti-02-activiti api

流程引擎API和服务 通过ProcessEngine你可以获取各种服务,它和所有的服务对象都是线程安全的,因此整个整个应用中可以只有一份. ProcessEngine processEngine =P ...

【Java】 剑指offer(46) 把数字翻译成字符串

本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成&quot ...

Python多线程、多进程实现

劝君莫惜金缕衣,劝君惜取少年时.花开堪折直须折,莫待无花空折枝. 内容摘要: paramiko模块 进程.与线程区别 python GIL全局解释器锁 多线程 语法 join 线程锁 ...

《SQLSERVER实施与管理实战指南》前4章节笔记内容

前4章节笔记内容 的前面4章是

linux如何给程序添加自启动

我要使我的服务程序在重启系统后也随之自动启动.启动我的服务用到了一个脚本.现在有两个方法: 法1: sudo vi /etc/init.d/rc.local在这里添加启动服务的脚本命令. 这个方法的优 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。