异步Servlet客户端,服务器推送

时间:2011-06-15 13:13:39

标签: javascript servlets asynchronous client server-push

大家好我想处理一些服务器推送。我有一个异步servlet处理一些东西,将它推送到客户端,然后它处理其他东西并再次推送到客户端(相同的连接)。该服务器只返回数据(在这种情况下为Json,但这并不是真正的麻烦)仅此而已。

所以我的问题是客户。我如何为此建立一个客户端?如果我使用JQuery发出ajax请求,例如我如何对第一个响应后的数据做出反应?

为了更清楚我想要的是一个比较:使用websockets我有方法onmesssage。

websocket ws = new WebSocket("ws://myserver.com");
ws.onmessage = function(event)
{
   var x = event.data
   .... // some other code here
}

所以我想要的是一个onmessage方法:)。我想这并不像websockets那么容易,但也许有人有想法。

问候亚历克斯

1 个答案:

答案 0 :(得分:0)

您可以让服务器生成一个响应,该响应由客户端加载到隐藏的iframe中。生成的响应将包含偶尔的JavaScript语句,这些语句调用“外部”(包含文档)。您可以使用parent来获取包含文档。

但请注意,这种技术非常苛刻(至少在我看来)。您可能希望重新考虑使用XMLHttpRequest,尤其是因为它为您提供了简单而强大的错误处理。您可以执行更多请求(而不是在服务器端附加到“旧”响应)。这可能会引入额外的延迟,但iframe技巧在实践中确实很麻烦。