- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 spring-boot-starter 1.3.1.RELEASE 下使用 spring-websockets 和 Jetty 后端。我想知道如何在服务器中启用 permessage-deflate。
我有一个托管在 Firefox 版本上的客户端,它愿意协商压缩,即与 WebSocket 端点的初始握手包括压缩协商 header ,例如:
GET https://my-websocket-host/my-endpoint
...
Sec-WebSocket-Protocol: v10.stomp,v11.stomp
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: ...
...
,但服务器响应在升级响应中不包含 permessage-deflate 扩展 header ,这意味着它不愿意协商压缩。我一直在寻找可以在配置中启用此功能的位置,但没有找到任何东西。是否有一些 API 可以用来打开此功能,或者当前产品不支持它?
非常感谢,
史蒂夫
最佳答案
此功能需要在 Jetty 本身中启用,因为我相信默认情况下未注册此扩展。 Spring 提供了一种配置握手处理程序并启用该扩展的方法。
原理解释见the reference documentation on websocket server configuration ,但这是一个完整的示例:
@Configuration
@EnableWebSocket
public class SampleJettyWebSocketsApplication implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// make sure to use the handshake handler we've defined
registry.addHandler(echoWebSocketHandler(), "/echo")
.setHandshakeHandler(handshakeHandler()).withSockJS();
}
@Bean
public DefaultHandshakeHandler handshakeHandler() {
WebSocketServerFactory factory = new WebSocketServerFactory();
// add the "permessage-compress" Websocket extension
factory.getExtensionFactory()
.register("permessage-compress", PerMessageDeflateExtension.class);
return new DefaultHandshakeHandler(new JettyRequestUpgradeStrategy(factory));
}
关于Spring STOMP Websocket : any way to enable permessage-deflate on server side?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347077/
我已经用 C# 编写了一个 WebSocket,并且正在尝试实现 permessage-deflate 扩展。似乎 C# DeflateStream 无法解压缩从 Chrome(版本 36.0.198
我在理解和实现 WebSocket 中的 permessage-deflate 扩展时遇到问题。 到目前为止,我已经在握手代码中添加了“Sec-WebSocket-Extensions: permes
我正在开发一个运行在 Tomcat 8.0.18 服务器上并使用 JSR356 websocket API 与浏览器通信的 Java servlet。默认情况下,Tomcat 使用“permessag
我正在尝试启用 WebSocket 扩展 permessage-deflate在 IIS 8 中,但到目前为止还没有运气。看来,IIS 不支持任何扩展并且不响应 Sec-WebSockets-Exte
底线: 我没有看到压缩的 websocket 消息,即使请求和响应中都存在 permessage-deflate header 。 一些细节: 我有一个 nodejs 服务器,我使用 Primus(下
我正在 spring-boot-starter 1.3.1.RELEASE 下使用 spring-websockets 和 Jetty 后端。我想知道如何在服务器中启用 permessage-defl
全部我正在尝试使用 per-message-deflate 对 WebSocket 有效负载进行编码。我正在尝试使用一些测试代码,但我的编码不正确,你能帮帮我吗? 这是我的代码: char a[180
我是一名优秀的程序员,十分优秀!