gpt4 book ai didi

resteasy - 在 Resteasy 中如何在发送响应之前知道客户端连接是否处于事件状态

转载 作者:行者123 更新时间:2023-12-02 21:36:55 26 4
gpt4 key购买 nike

考虑以下场景(使用 Rest easy 进行 Rest 实现):

  1. 客户端向我的 RestService 发送了请求。
  2. 我的休息服务更新了与请求相关的数据库。
  3. 最后我的休息服务发送了一些响应。

如果客户端在从我的休息服务发送响应之前超时并关闭连接:

  • (我需要)恢复数据库更改。

问题是:

如何判断客户端是否关闭了连接?

最佳答案

Rest 是无状态的,并且您试图跟踪请求状态,这不是可接受的 RESTful 策略。无论如何,这就是我们在应用程序中解决类似问题的方式。超时可以由 session 管理,您可以使用监听器来获取超时事件。但“关闭”连接似乎有点复杂。您可以从互联网上获得很多技巧,但目前还没有普遍接受的浏览器关闭事件。尽管问题看起来很简单,但它是一个棘手的问题。您可以尝试以下 hack

  • 生成一个唯一 ID 并将其与请求。

  • 在从服务器发送响应之前,安排一个有时间限制的作业,并使用您获得的 ID 注册该作业。

  • 从客户端,在回调中再次使用相同的 id ping 服务器。

  • 以这样的方式安排角色返回,如果在有限的时间范围内没有收到来自具有注册 ID 的客户端的任何 ping,则角色返回该功能。

您可以看看sockets还。

关于resteasy - 在 Resteasy 中如何在发送响应之前知道客户端连接是否处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862740/

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