使用http.sys,让delphi 的多层服务真的飞起来

c5soft

端茶倒水的
Administrator
VIP Member
#1
原delphi窑洞洞主
You do not have permission to view link Log in or register now.
在自己的博客上发过一篇
文章:
《使用http.sys,让delphi 的多层服务飞起来》
You do not have permission to view link Log in or register now.

这里边提到如何把mormot的httpserver抠出来,嫁接到webbroker上,非常好的思路。
可惜
You do not have permission to view link Log in or register now.
没贴出全部源代码。

最近对WebBroker做了点深入研究,给出了c5soft的实现,贴出全部源代码。
目前是0.0.0.1版本,仅搭了个框架,但是明眼人一看就明白实现思路,一步一步可以把整个框架填满。
源代码在Delphi7 与Delphi 10.2下编译通过。
1526812519314.png
 

Attachments

Last edited:

c5soft

端茶倒水的
Administrator
VIP Member
#2
框架使用方法:

第一步,新建WebServer Application

You do not have permission to view link Log in or register now.


第二步, 选择 CGI Standalone Executable

You do not have permission to view link Log in or register now.


第三步, 将c5soft写的SynWebApp.pas放到项目文件夹下,修改dpr文件, 将CGIApp替换为SynWebApp in 'SynWebApp.pas'
此帖子包含附件:
You do not have permission to view link Log in or register now.


后续要点:要让程序编译通过,需要下载mORMot的源文件,并将mORMot添加到Delphi的库搜寻路径中。剩下的要是还不会,就去看web broker开发文档了。
此帖子包含附件:
You do not have permission to view link Log in or register now.
 

c5soft

端茶倒水的
Administrator
VIP Member
#3
发布SynBroker 0.0.0.5 版,基本可用版

1.增强SynReqRes.pas,实现了输出ContentStream。基本功能全有了。
2.增加SoapClient客户端用例。实现了我个人的目的--让mORMot支持SOAP。
3.在Delphi7/XE/10.2.3三个版本下编译测试通过。Delphi7编译32位的客户端程序SoapClient.exe连接D10.2.3编译的64位的服务程序SynBrokerTestXXX.exe正常运行。

SynBroker呱呱落地,该说声谢谢了。SynBroker是大家的成果,我能把代码写出来离不开以下诸位的支持:
1.mORMot作者AB, Arnaud Bouchez,我敬仰的少数几位大师之一。mORMot这个项目充分体现了作者的工匠精神,是作者将现代软件工程最新理论付诸实践的产物。他简单、高效的风格非常契合我大道至简、美是简单的追求。
2.flier (小海 //爱喝可乐^_^),用中文将WebBroker系统架构刨析得最透彻的那位大咖,他还写了Soap分析,这位学者沉睡近20年的文字为我搞懂Web Broker节省大量时间。
3.Delphi窑洞洞主xalion,他那篇博文是这个项目的导火索。老司机们应该记得,当年51delphi为大家带来了多少福利。
4.本站站长及看帖并回复的朋友,是大家的关注点燃了我写代码的热情。
 

Attachments

c5soft

端茶倒水的
Administrator
VIP Member
#5
SynBroker 0.9.0.0 版,基本稳定版,全部源码

让Delphi WebBroker/DataSnap通讯底层用上mORMot提供的http.sys调用,在Windows坏境实现高并发(万次以上)与高稳定(长期不运行不宕机)。
1.项目文件名以SynWeb开头,不是SynWeb开头的文件都不是必须的。一共4个文件,文件之间的引用关系是:SynWebApp->SynWebServer->SynWebReqRes->SynWebEnv。
2.SynHTTPWebBrokerBridge.pas用于替换IdHTTPWebBrokerBridge.pas,让大家少敲打几次键盘,这个文件中实质只有一行TSynHTTPWebBrokerBridge = TSynWebServer。
3.SynBrokerTest.dpr是Console类型服务端用例程序,SynBrokerTestGUI.dpr是GUI类型服务端用例程序。
4.SoapClient.pas客户端用例程序,用于测试Soap调用。
5.在Delphi7/XE/10.2.3三个版本下编译测试通过。支持Win32位与Win64位编译。


重要的事多说几遍,SynBroker能够降生,离不开以下诸位的支持:
1.mORMot作者AB, Arnaud Bouchez,我敬仰的少数几位大师之一。mORMot这个项目充分体现了作者的工匠精神,是作者将现代软件工程最新理论付诸实践的产物。他简单、高效的风格非常契合我大道至简、美是简单的追求。
2.flier (小海 //爱喝可乐^_^),用中文将WebBroker系统架构刨析得最透彻的那位大咖,他还写了Soap分析,这位学者沉睡近20年的文字为我搞懂Web Broker节省大量时间。
3.Delphi窑洞洞主xalion,他那篇博文是这个项目的导火索。老司机们应该记得,当年51delphi为大家带来了多少福利。
4.本站站长及看帖并回复的朋友,是大家的关注点燃了我写代码的热情。
 

Attachments

Top Bottom