用于delphi应用程序的实时基于Web的客户端.如何?

bal*_*azs 6 delphi gwt icalendar smartgwt

首先,我想要的是相当复杂的,至少对我而言,但另一方面听起来令人兴奋.

我有一个用delphi编写的软件,我想要一个基于Web的实时客户端.

要求:

  • 在客户端纯Javascript
  • 闪亮的界面(GWT,SmartGWT)
  • 服务器和客户端之间的异步连接.Ajax推送,Long Polling,Comet,WebSocket?

在服务器端

  • 扩展能力

在delphi方面,我认为我可以使用Overbyte中的ICS来处理请求.我知道来自ICS包的THttpAppSrv可以很容易地提供简单的内容,但是Websocket呢,或者我怎么能用它进行长时间的轮询呢?

您如何看待,它是一个很好的组合(GWT,客户端的SmartGWT,以及delphi方面的ICS),是否有任何示例项目,还是有其他解决方案?

更新 感谢有用的评论,我想我更接近解决方案.很高兴知道GWT可以使用自定义服务器,但我认为Arnaud是对的,GWT使用它自己的Jetty服务器是一个完整的解决方案,但遗憾的是不适合我.:)我想我需要一个用delphi编写的服务器,它可以与GWT RPC通信.

更新2 我接受了Arnaud Bouchez的答案,这个答案让我看起来对原始问题最好,但我认为有一个更好的解决方案(如果你稍微改变一点要求)来创建一个在浏览器中运行的delphi应用程序的客户端.我在这里做一点评论,分享这个想法.最后我使用了node.js服务器,并在ZMQ的帮助下将其连接到我的delphi应用程序.

Arn*_*hez 3

关于Delphi端的HTTP服务器,可以考虑使用微软自XP以来提供的内核模式http.sys服务器。应该比ICS更快。

对于 AJAX 部分,请查看Op4JS或即将推出的ElevateDBBuilder

这些解决方案的优点在于您可以编写对象 pascal 代码,并且该代码将被转换为 JavaScript。尚未完成,但值得等待一下他们的发布时间。

当然,确实存在更经典的 AJAX 解决方案,例如IntraWebExtPascal。两者都实现了自己的网络服务器。

关于 GWT,据我所知,它们是 Java 库,与 Java 世界紧密相连。您将无法使其与 Delphi 一起工作。

关于 GWT 的编辑:

GWT 是一个完整的客户端-服务器框架。

如果您使用 GWT,我怀疑您最终会在某个时刻对应用程序进行完整的 Java 重写。否则您将错过 GWT 作为框架的最大乐趣。这是你的选择。

我宁愿依赖一些更标准的方法,例如使用 JSON 进行通信,就像我们使用框架一样。