在使用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 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法

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

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

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

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

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

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

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

随机推荐

sql server 2008 跨服务器查询

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-ssl.google.com refused”错误 解决方法: 在Android SDK Manager-& ...

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

本文转自:http://www.cnblogs.com/yongfa365/archive/2010/05/10/NPOI-MyXls-DataTable-To-Excel-From-Excel.ht ...

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

代码地址:http://download.csdn.net/detail/jiangliqing1234/8027039 流程具体解释:http://blog.csdn.net/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    线程锁 ...

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

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

linux如何给程序添加自启动

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

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

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

    解决Selenium与firefox浏览器版本不兼容问题 参考文章: (1)解决Selenium与firefox浏览器版本不兼容问题 (2)https://www.cnblogs.com/limxia ...

  2. chrome java过期_解决ubuntu的chrome浏览器的flash过期问题

    我的谷歌浏览器版本是Version 55.0.2883.87 (64-bit) 1.首先,上flash官网下载最新的linux的tar.gz压缩包.https://get.adobe.com/cn/f ...

  3. html5怎样兼容ie浏览器版本,HTML5 兼容IE浏览器

    Java代码   javascript html>  css html web canvas header,nav,aside,article,footer{ display:block;} 手 ...

  4. 浏览器无法运行java_window_浏览器无法运行JAVA脚本的解决方法,1、浏览器无法运行JAVA脚本的 - phpStudy...

    浏览器无法运行JAVA脚本的解决方法 1.浏览器无法运行JAVA脚本的解决方法. rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%Syste ...

  5. 原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari(亲测可用)

    浏览器类型及版本判断在开发中是比较常见的使用场景,之前用var ua = navigator.userAgent.toLowerCase()来判断浏览器的内核,发现chrome和edge浏览器无法区分 ...

  6. 使用 Sa-Token 解决 WebSocket 握手身份认证

    前言 相比于 Http 的单项通信方式,WebSocket 可以从服务器向浏览器主动推送消息,这一特性可以帮助我们完成诸如 订单消息推送.IM实时聊天 等一些特定业务. 然而 WebSocket 本身 ...

  7. java 获取httpsession_java使用websocket,并且获取HttpSession,源码分析

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...

  8. webSocket如何解决自动关闭的意思

    我的前一篇文章"webSocket如何在自己的工程中使用?" 地址:https://blog.csdn.net/jintingbo/article/details/80755636 ...

  9. Redis解决websocket在分布式场景下session共享问题

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_45089791/article/ details/118028312 在显示项目中 ...

  10. DIV CSS兼容性解决IE6/IE7/FF浏览器的通用方法完美兼容

    在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...

最新文章

  1. linux 重新分区挂载,Linux:挂载磁盘分区,linux已挂载磁盘重新分区
  2. SAP KKBC_ORD报表中Plan和Target的区别
  3. fortran subroutine_Fortran:派生数组与数组传递进子程序耗费时间比较
  4. RabbitMQ 队列消息持久化
  5. HTML JS正方形轮播,js,html一个页面里面多个页面轮播
  6. 清华发布新版计算机学科推荐学术会议和期刊列表,与CCF有何不同?
  7. Linux学习笔记:Linux常用命令操作
  8. 去小机化思维(二)--【软件和信息服务】2015.03
  9. SQLite 3.7.13的加密解密(三)—— 创建加密解密函数
  10. 编译错误(拓补排序)
  11. 浅谈车载支架无线充电方案
  12. 简单的卷积神经网络编程,python卷积神经网络训练
  13. 阿里云数据迁移工具解决方案:华为云迁移到阿里云
  14. 如何使用Imperva Incapsula优化和加速您的网站
  15. 复旦大学有计算机网络专业,复旦大学计算机网络专业计划..doc
  16. ffmpeg运行在服务器上,如何在脱离流媒体服务器的时候使用ffmpeg 监测.m3u8直播视频流的状态?...
  17. 嵌入式软件测试的基本方法
  18. 芯片RK3399性能介绍
  19. 《程序员的数学思维修炼》 读书笔记
  20. Data Fabric,下一个风口?

热门文章

  1. 2017新型智慧城市建设的五“新”级策略
  2. text显示下标的字体 unity_Text Mesh Pro中文版
  3. 企业长期偿债能力评估-利息收入倍数、财务杠杆比率、资产负债率、利息保障倍数、债务股本比率...
  4. 视频目标分割数据集DAVIS(Denly-Annotated VIdeo Segmentation)解读
  5. 国内手游渠道SDK快速接入之Unity篇
  6. 惠普电脑如何安装双系统
  7. android gridview textview,gogo体育官方网站-gogo体育官方网站
  8. 【最优化导论】一维搜索方法
  9. 手写curry函数,实现函数柯里化
  10. 清除浏览器痕迹(RunDll32.exe)