gpt4 book ai didi

proxy - 配置 Jetty WebSocket 客户端以使用代理

转载 作者:行者123 更新时间:2023-12-04 10:49:00 25 4
gpt4 key购买 nike

我还没有找到任何解决方案。好像Jetty尚不支持此功能。我可能错了,所以请赐教。

我有一个非常简单的 Java连接到 Java 的客户端服务器在 localhost:8080 .我想在它们之间添加一个透明代理,以模拟我们可以在公司的专用网络中找到的内容。

最佳答案

更新:2017 年 5 月

从 Jetty 9.4.0 开始,原生 Jetty WebSocketClient 通过 Jetty HttpClient 支持代理。

这是通过声明一个 HttpClient 及其代理配置,然后将其交给 the WebSocketClient constructor 来实现的。使用。

这仅适用于以下情况:

  • HTTP/1.1 升级到 WebSocket
  • 原生 Jetty WebSocket API

  • 这不适用于以下情况:
  • HTTP/2(目前还没有基于 HTTP/2 的 WebSocket 规范)
  • JSR356 javax.websocket(有一些想法可以打破对 JSR356 ClientContainer 的 API 更改,以允许通过构造函数传入 Jetty HttpClient,请通过 filing a new issue on github 告诉我们这对您来说是否可行)

  • 原答案

    对于 Jetty 9,Jetty Native WebSocket 客户端或 JSR-356 (javax.websocket) 客户端实现均不提供代理支持。

    此支持计划用于 Jetty 10(正在跟踪 Servlet 4),并将导致对 Jetty 中的整个客户端库套件进行彻底改造,以对以下方面提供同等支持:
  • HTTP/1.1
  • HTTP/2( native /直接)
  • HTTP/1.1 升级到 HTTP/2 (h2c)
  • HTTP/1.1 升级到 WebSocket
  • HTTP/2 websocket channel (目前处于草案规范中)
  • 代理支持
  • Cookie 支持
  • 等等...

  • 由于 JSR-356 支持要求,Jetty 上现有的 WebSocket 客户端实现是独立的。

    现有的 WebSocket 客户端不利用 Jetty 9.x 中现有的 Jetty HttpClient。如果确实如此,那么代理支持可能会在一组非常有限的场景下起作用。

    这是一个低优先级的功能请求,因为到目前为止支持 WebSocket 的现有代理很少(实际上,它们对 HTTP/1.1 升级的支持通常很差)。甚至 Jetty 自己的 Server side Proxy 目前也不支持 HTTP/1.1 升级连接。

    关于proxy - 配置 Jetty WebSocket 客户端以使用代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32785018/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com