服务器对一个客户端请求的多个回复

时间:2009-08-20 19:00:02

标签: asynchronous client-server

这可能是一个愚蠢的问题 - 标题可能需要改进......我认为我的要求非常简单:我想将数据请求从客户端发送到服务器程序和服务器(不是客户)应该回答“收到你的请求 - 工作”。然后客户做其他工作。然后,当服务器获得数据时,它应该发送一条异步消息(一个弹出窗口?),说“我有你的数据;点击......(可能是一个URL)来获取数据”。我一直认为服务器可以用Java编写,客户端是html和JavaScript。我无法提出一个干净的解决方案 - 将不胜感激。

5 个答案:

答案 0 :(得分:1)

大多数工作都会使服务器异步。要做到这一点,你必须

  1. 对启动作业的服务器进行ajax调用,并返回作业已启动的确认。
  2. 服务器上的一个页面,它将返回用户是否完成任何作业。
  3. 在您的客户端上有一个ajax小部件,每隔一段时间就会在该服务器上ping该页面以查看是否已完成任何作业。如果是这样,请弹出一个。
  4. 除非您使用Flex数据服务,否则这是唯一的方法。

答案 1 :(得分:1)

尝试使用“Websocket方法”,服务器端使用“SuperWebSocket”,客户端使用“WebSocket4Net”。它对我目前的项目非常有效。

答案 2 :(得分:0)

您是否尝试在HTTP协议上执行此操作?听起来你在这里谈论的是一个Web应用程序,但问题并不清楚。如果是这样,那么有很多种技术可以使用AJAX来实现这一点,它们统称为“Comet”。根据您要完成的工作,客户端和服务器端的许多不同实现可能都是合适的。

答案 3 :(得分:0)

对于纯java我建议像jgroups(客户端+服务器是java) 对于html,你应该使用ajax - 你有一个每X秒检查一次的计时器

答案 4 :(得分:0)

现在您可以使用另一种技术:Websockets。这些用于服务器 - >客户端通信,无需轮询或ajax样式的延迟响应。