首先,我想要的东西非常复杂,至少对我来说是这样,但另一方面,它听起来很令人兴奋。
我有一个用 delphi 编写的软件,我想要一个基于网络的实时客户端。
要求:
- 在客户端纯 Javascript
- Shiny 的界面(GWT、SmartGWT)
- 服务器和客户端之间的异步连接。 Ajax 推送、长轮询、Comet、WebSocket?
在服务器端
- 可扩展性
在delphi方面,我想我可以使用Overbyte的ICS来处理请求。我知道 ICS pack 中的 THttpAppSrv 可以轻松地提供简单的内容,但是 Websocket 怎么样,或者我如何用它进行长轮询?
您认为这是一个很好的组合(客户端的 GWT、SmartGWT 以及 delphi 端的 ICS),是否有任何示例项目,或者还有其他解决方案吗?
更新 感谢您的有用评论,我想我更接近解决方案了。很高兴知道 GWT 可以使用自定义服务器,但我认为 Arnaud 是对的,GWT 及其自己的 Jetty 服务器是一个完整的解决方案,但不幸的是不适合我。 :) 我想我需要一个用delphi编写的服务器,它可以与GWT RPC通信。
更新2 我接受了 Arnaud Bouchez 的答案,这对我来说是最初问题的最佳答案,但是我认为有一个更好的解决方案(如果您稍微改变一下要求)来为 delphi 应用程序创建在浏览器中运行的客户端。我只是在这里发表一点评论,分享一下想法。最后我用了node.js服务器,并在ZMQ的帮助下将其连接到我的delphi应用程序.
最佳答案
关于Delphi端的HTTP服务器,可以考虑使用kernel mode http.sys server从 XP 开始由 Microsoft 提供。应该比 ICS 更快。
对于 AJAX 部分,请查看 Op4JS或即将到来 ElevateDBBuilder .
这些解决方案的优点在于您可以编写对象 pascal 代码,并且该代码将被转换为 JavaScript。尚未完成,但值得等待一下他们的发布时间。
当然,更经典的 AJAX 解决方案确实存在,例如 IntraWeb或ExtPascal 。两者都实现了自己的网络服务器。
关于 GWT,据我所知,它们是 Java 库,与 Java 世界紧密相连。您将无法使其与 Delphi 一起工作。
编辑 GWT:
GWT 是一个完整的客户端-服务器框架。
如果您使用 GWT,我怀疑您最终会在某个时候对应用程序进行完整的 Java 重写。否则您将错过 GWT 作为框架的最大乐趣。这是你的选择。
我宁愿依赖一些更标准的方法,例如使用 JSON 进行通信,就像我们使用框架一样。
关于delphi - Delphi 应用程序的实时基于网络的客户端。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193014/