【问题标题】:Jetty http/2 add ServerSessionListener to serverJetty http/2 将 ServerSessionListener 添加到服务器
【发布时间】:2016-08-12 22:16:12
【问题描述】:

我正在使用嵌入式 Jetty 来实现 HTTP/2。目前我正在尝试向我的服务器添加一个 ServerSessionListener(来自:org.eclipse.jetty.http2.api.Session.Listener.Adapter)。

我尝试通过 addEventListener 将其添加到上下文和服务器,但没有成功。

也许有人可以提示我做错了什么......

我想在我的 HTTP2 连接中添加一个会话侦听器,以跟踪连接的会话(客户端)及其连接持续时间。

问候!

【问题讨论】:

  • 不清楚你在做什么,你想达到什么。发布您的代码。
  • 我想实现我可以存储会话 ID,并且可以查看用户通过此会话 ID 请求/响应的内容。
  • HTTP/2没有session id的概念,所以目前还不清楚“requested/respond over this sessionid”是什么意思。
  • 我认为每个客户端都通过会话进行连接。我只想通过监听器从我的服务器接收“会话打开”或“会话关闭”。

标签: jetty http2


【解决方案1】:

您可以将Connection.Listener 的实现作为bean 添加到连接器本身,例如:

http2Connector.addBean(new Connection.Listener()
{
    public void onOpened(Connection connection) { ... }

    public void onClosed(Connection connection) { ... }
});

或者,您可以将 Connection.Listener 作为 bean 添加到 ConnectionFactory。

在这两种情况下,每次创建连接时,都会将侦听器添加到连接中,并在连接打开和关闭时调用。

您可以使用 Jetty 的 ConnectorStatistics 类,该类已经收集了大量有关连接的统计信息并已经实现了 Connection.Listener。

【讨论】:

  • 谢谢!还有一个问题。是否也可以将此侦听器添加到 HTTP2Client 中?
  • 目前没有,但我提交了this issue 来实现它。欢迎投稿。
猜你喜欢
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多