异步 Servlet 客户端,服务器推送
Posted
技术标签:
【中文标题】异步 Servlet 客户端,服务器推送【英文标题】:Asynchronous Servlet Client, Server push 【发布时间】:2011-06-15 13:13:39 【问题描述】:大家好,我想处理一些服务器推送。我有一个异步 servlet 处理某些内容,将其推送到客户端,然后它处理其他内容并将其再次推送到客户端(相同的连接)。 servet 只返回数据(在这种情况下为 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】:您可以让您的服务器生成一个响应,该响应由客户端加载到隐藏的 iframe 中。生成的响应将包含偶尔调用“外部”(包含文档)的 javascript 语句。您可以使用 parent
获取包含文档。
但请不要认为这种技术是相当骇人听闻的(至少在我看来)。您可能需要重新考虑只使用 XMLHttpRequest,尤其是因为它为您提供了简单而强大的错误处理。您可以执行更多请求(而不是在服务器端附加到“旧”响应)。这可能会引入额外的延迟,但这种 iframe 技巧在实践中确实很麻烦。
【讨论】:
嗨 Waldheinz,我同意 iframe 的想法有点不干净。但是您向我指出了我想要的解决方案(XMLHttpRequest)。这正是我所寻找的。非常感谢以上是关于异步 Servlet 客户端,服务器推送的主要内容,如果未能解决你的问题,请参考以下文章