首先,我想要的是相当复杂的,至少对我而言,但另一方面听起来令人兴奋。
我有一个用delphi编写的软件,我想要一个基于Web的实时客户端。
要求:
在服务器端
在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应用程序。
答案 0 :(得分:3)
关于Delphi端的HTTP服务器,请考虑使用自XP以来Microsoft提供的kernel mode http.sys server。应该比ICS更快。
对于AJAX部分,请查看Op4JS或最近ElevateDBBuilder。
这些解决方案的优点在于您可以编写对象pascal代码,并且此代码将转换为JavaScript。尚未完成,但值得等待他们的发布时间。
当然,确实存在更多经典的AJAX解决方案,例如IntraWeb或ExtPascal。两者都实现了自己的Web服务器。
关于GWT,AFAIK它们是Java库,与Java世界密切相关。你将无法使用Delphi。
编辑GWT:
GWT是一个完整的客户端 - 服务器框架。
如果你使用GWT,我怀疑你会在某个时候以完整的Java重写应用程序结束。或者你会错过GWT最感兴趣的框架。这是你的选择。
我宁愿依赖一些更标准的方法,例如使用JSON进行通信,就像我们使用框架一样。
答案 1 :(得分:1)
Delphi,客户端的纯javascript和闪亮的界面?你在谈论Unigui!
答案 2 :(得分:1)
之前我曾在PHP,ASP和Cold Fusion上工作过,并希望(几乎)与Delphi一样。我开始了xxm。它在相同的文件中包含Delphi和HTML代码,并且当您在浏览器中点击刷新时(重新)编译库。我已经为这些库做了处理程序,因此您可以在IIS,Apache,InternetExplorer,Firefox或基于Delphi的HTTP实现中运行它们。 (我也开始研究http.sys处理程序,但这需要做更多的工作。)
另外,关于你的问题,我想要流式传输,我希望我输出的内容尽快转移到监听客户端,这样你就可以进行长时间运行的页面,长轮询,以及喜欢。至于GWT和其他客户端脚本,我已经成功使用了原型和jquery。
答案 3 :(得分:0)
你签出了Intraweb吗?我自己并没有广泛使用它 - 但它似乎很受Delphi网络应用程序的欢迎。
我使用带有IIS或Apache的TWebBroker制作了几个Web应用程序。它是异步的,允许您轻松地与其他应用程序一起移植/共享Delphi代码。它会支持Ajax调用。