【发布时间】:2011-07-15 12:03:03
【问题描述】:
我正在开发一个富客户端应用程序,其中用户界面是 html/css/javascript(codeigniter 框架),而服务器部分是用 Java 编写的。本质上,这是一个监控/控制系统,用户可以通过 ui 发出命令,后端将执行该请求。
目前,RPC 是通过 XML-RPC 完成的。发送请求和接收响应运行良好。但是,我的最新一期涉及实时 ui 更新。
服务器从它所监控的任何地方接收实时更新,我需要立即在 ui 中反映这些变化。目前,我们使用 XMLHttpRequest 长轮询数据库以获取任何更改,然后更新 ui。显然,这有很多缺点,主要问题是即时性。
如何使用 XML-RPC 打开请求,并且仅在有更新(感兴趣)时才响应。一旦发生这种情况,更新 ui,并打开另一个请求;重复。但是,我不确定这可能是如何实现的,因为我不相信您可以从 Codeigniter 中的控制器调用 JavaScript 函数(在我看来,这是必不可少的,我如何在页面元素开始之后更新它们已加载)。
如果有任何建议,我将不胜感激。
编辑:我已经阅读了关于彗星技术和网络套接字的信息,不幸的是,网络套接字对于这个项目来说并不现实。关于使用 xml-rpc 和一个长的开放请求,Comet 或多或少是我所建议的。所以,除了彗星和网络套接字之外,欢迎提出任何建议。
【问题讨论】:
-
您可能想阅读 Web Sockets。 en.wikipedia.org/wiki/WebSockets
标签: java javascript codeigniter xml-rpc rpc