博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebSocket与Tomcat版本兼容问题
阅读量:5739 次
发布时间:2019-06-18

本文共 750 字,大约阅读时间需要 2 分钟。

WebSocket与Tomcat8.0以下

使用

tomcat自带catalina.jar与tomcat-coyote.jar

方法

通过继承catalina.jar中的WebSocketServlet类作为serverlet拦截前台ws协议的请求,大致关键代码:

createWebSocketInbound(String arg0){		return new myMessageInbound(users);}复制代码

myMessageInbound是继承MessageInbound的类,里面自带方法onTextMessage、onMessage、onOpen等,即与前台相应方法匹配。

WebSocket与8.0以上

使用

tomcat自带的websocket-api.jar

方法

通过@ServerEndpoint(value = "/xxx")注解,此时,前台ws协议访问只需是ip+port/xxx,而不需要项目名。该类中,使用websocket-api.jar中的onclose、onopen等方法与前台相应方法匹配。

注意:

  1. Tomcat7.0.38之前版本会出现长链接自动断开,之后的版本修复了这个问题。

  2. tomcat的lib中含有websocket-api.jar,如果你项目是引用的自己的websocket-api.jar,部署到tomcat上后,会导致两个jar冲突(前台一直显示websocket close)。有三种解决方案:

    • 修改tomcat的contxet.xml文件,添加。

    • 直接调用tomcat的lib中的websocket-api.jar。

    • 【推荐】引入Tomcat类库:Add Library->Server Runtime->Apache Tomcat

转载地址:http://otfzx.baihongyu.com/

你可能感兴趣的文章
I wrote a JSONHelper extension
查看>>
hello ROR第一个WEB页面
查看>>
通过 Xshell 5 连接 centOS 7 服务器
查看>>
11.24作业3
查看>>
Django中的信号
查看>>
为cocos2d-x 添加启动数字输入法的功能
查看>>
vue-element-table-js去重合并单元格解析【实战需求】
查看>>
white-space 属性设置如何处理元素内的空白
查看>>
uedit 富文本编辑器 图片上传 图片服务器
查看>>
什么是有监督学习和无监督学习
查看>>
ThreadLocal和ThreadLocalMap源码分析
查看>>
8.27 题解
查看>>
AFNetworking 下载文件断点续传操作
查看>>
Linux定时器
查看>>
JS数组分页
查看>>
云时代,程序员将面临的分化
查看>>
收藏的博客 -- Qt/C++学习
查看>>
Vue-cli 构建项目 的`.vue`组件中, scss中添加背景图路径问题
查看>>
各种遍历写法的比较
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(7)——文件上传
查看>>