是的,你需要寻找的是COMET http://en.wikipedia.org/wiki/Comet_(programming)。其他搜索推荐词有AJAX-push和reverse-ajax。
是的,它被称为 反向Ajax 或 Comet 。Comet基本上是一个总称,用于描述不同的方法来打开长连接HTTP请求,以便将数据实时地推送到Web浏览器。我建议使用StreamHub Push Server,他们有一些很酷的演示,并且比其他服务器更容易入门。查看Comet和StreamHub入门教程,可以快速了解一下。您可以使用可免费下载的社区版,但仅限20个并发用户。商业版值得购买,因为它提供支持,还包括SSL和桌面.NET和Java客户端适配器。帮助可以通过Google Group获得,网上有很多好的教程,并且还有一个 GWT Comet适配器。
现在你应该使用WebSockets。这是一个2011年的标准,允许通过HTTP建立连接,然后将其升级为双向的基于消息的客户端-服务器通信。
你可以轻松地从Javascript中发起连接:
var ws = new WebSocket("ws://your.domain.com/somePathIfYouNeed?args=any");
ws.onmessage = function (evt)
{
var message = evt.data;
//decode message (with JSON or something) and do the needed
};
服务器端的处理取决于您的技术堆栈。
了解一下Comet(一个模仿Ajax清洁剂,并且它本身也是一种清洁剂)它基本上是“反向Ajax”。需要注意的是,这要求每个用户都有一个长连接的服务器连接来接收通知,因此在编写应用程序时要注意性能影响。
除了Comet,使用Flash中的套接字是一个有趣的选择。
Comet这个词实际上是由Dojo Toolkit的Alex Russell创造的(http://www.dojotoolkit.org)。 这里有更多信息的链接:http://cometdproject.dojotoolkit.org/
您可以使用BlazeDS或LiveCycle服务器端与客户端上的Flash/Flex应用程序。数据可以使用RTMP连接推送到客户端。请注意,RTMP使用非标准端口。但是,如果端口被阻塞,您可以轻松地回退到轮询。