当前位置:  开发笔记 > 编程语言 > 正文

Servlet容器提供的WebSockets

如何解决《Servlet容器提供的WebSockets》经验,为你挑选了2个好方法。

我上周看了一下WebSockets,并对如何使用Java Servlet API实现服务器端做了一些想法.我没有花太多时间,但在使用Tomcat进行的一些测试中遇到了以下问题,如果不修补容器或至少对HttpServletResponse实现进行容器特定修改,这似乎无法解决:

WebSocket规范要求在101 HTTP响应中定义消息.不推荐使用HttpServletResponse.setStatus(int code,String message)而不提及可用的替换.更改默认的Tomcat配置后,我让Tomcat尊重我的消息字符串,但由于该方法已被弃用,我不确定这是否适用于其他servlet容器.

WebSocket规范要求对响应连接升级请求的HTTP响应中的前几个标头的指定顺序.servlet API不提供指定响应头的顺序的方法,Tomcat将自己的头添加到响应中,将其中的一些放在任何头之前,这些头由servlet实现添加.

由于在提交头时未知响应的内容长度,因此Tomcat会自动切换到响应的分块传输编码,这与WebSocket规范不兼容.

我是否遗漏了一些明显的东西,或者是否真的无法将WebSocket服务器端点集成到基于servlet的Web应用程序中?



1> Horcrux7..:

Jetty中有一个实现.我们希望tomcat和jetty找到兼容的API.



2> dlaidlaw..:

该Glassfish的气氛项目会做你想要什么.您可以定义一个servlet来完成所有工作.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有