gpt4 book ai didi

java - 服务器使用 JAX-RS 和 RESTeasy 在单个 URL 中向客户端发送 "ping request"

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:00:17 25 4
gpt4 key购买 nike

我想创建一个 Web 应用程序,一旦客户端访问某个 URL(例如 www.example.com/ping/hello),它就能够“ping”客户端,以便获得服务器和服务器之间的往返时间客户。通过“ping”请求,我的意思是来自服务器的带有时间戳的简单请求和客户端发送回带有其时间戳的响应。如果可能的话,我希望使用单个 URL 完成此 Activity 。

流程是这样的:

  1. 客户端转到 URL
  2. 服务器发送带有时间戳的响应给客户端
  3. 然后客户端用新的时间戳向服务器发送另一个响应
  4. 服务器最终以 200 OK 结束连接

到目前为止,我只能执行第一步和第二步,但不确定如何确保客户端在不返回第一步的情况下再次转到相同的 URL。

我的服务器代码是这样的:

@GET
@Path("/helloping")
public Response getPingServerClient(@Context HttpServletRequest req) {
String result = Long.toString(System.currentTimeMillis());

return Response.status(200).entity(result).build();

//the code to receive the response from client containing timestamp
}

有办法吗?

最佳答案

有两个客户端到服务器的调用。您必须想出一种方法来区分这两个调用。

为此,我可以想到 3 个选项:

  1. HTTP header
  2. GET 请求中的查询参数
  3. 带有标记的 POST 请求以区分这两个调用

请求/响应流程将是这样的:

Client -> Server : Request
Server -> Client : Response with timestamp t1
Client -> Server : Request with timestamp t2 and the above mentioned marker
Server -> Client : Response 200

在这种方法中,您必须在服务器端和客户端编写自定义代码来处理上述逻辑。

关于java - 服务器使用 JAX-RS 和 RESTeasy 在单个 URL 中向客户端发送 "ping request",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52119014/

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