码迷,mamicode.com
首页 > 其他好文 > 详细

使用双引擎,让kbmmw 的客户端访问更方便(既给浏览器做服务,也给桌面程序做服务)

时间:2019-01-01 11:11:44      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:如意   end   好处   echo   服务   方式   ant   问题   通过   

前面我们一直都讲了如何使用kbmmw smarthttpservice 给客户端提供REST  服务。主要都是返回给

浏览器访问的,如果我们使用delphi 开发桌面应用,如何使用这些服务呢?其实一切都不是问题,kbmmw 除了

有强大的smartservice,也有强大的smartclient 。

我们今天就在以前的smarthttpservice 加上TCP 访问功能,最大的好处就是根本都用动原来的服务代码。

首先我们在服务端,放一个kbmMWTCPServerTransport1。并设置其server 属性。

技术分享图片

 

 技术分享图片

然后检查一下我们前面设置的服务函数

技术分享图片
   [kbmMW_Rest(‘method:$(service.xalionrest.helloworld.method=post), path:$(service.xalionrest.helloworld.path=helloworld)‘)]
    // [kbmMW_Method] 注释了这个客户端就不能访问了
     function HelloWorld:string;

     [kbmMW_Rest(‘method:get, path:version‘)]
     [kbmMW_Method]
     function version:string;

     [kbmMW_Method(‘EchoString‘)]       // 回应输入的串
     [kbmMW_Rest(‘method:get, path: ["echostring/{AString}","myechostring/{AString}" ]‘)]
     [kbmMW_Auth(‘role:[SomeRole,SomeOtherRole], grant:true‘)]
     function EchoString([kbmMW_Rest(‘value: "{AString}"‘)] const AString:string):string;

     [kbmMW_Method]
     [kbmMW_Rest(‘method:get, path: "cal/addnumbers"‘)]
     function AddNumbers([kbmMW_Rest(‘value: "$arg1", required: true‘)] const AValue1:integer;
                         [kbmMW_Rest(‘value: "$arg2", required: true‘)] const AValue2:integer;
                         [kbmMW_Arg(mwatRemoteLocation)] const ARemoteLocation:string):string;
技术分享图片

注意 加了[kbmMW_Method] 这个属性,客户端就可以访问。

加了[kbmMW_Rest(‘method:get, path:version‘)] 保证使用REST 方式访问。

服务器端就好了,运行就可以了。


现在我们来做客户端,这个更简单
放上对应的控件,如图:

技术分享图片

记住要加上单元 kbmMWSmartClient,kbmMWSmartClient,


技术分享图片
procedure TForm1.Button1Click(Sender: TObject);
var
   c:IkbmMWSmartClient;
    s:string;

begin
     Transport.Host:=eIP.Text;

     // 通过给定的transport来建立一个客户端
     c:=TkbmMWSmartRemoteClientFactory.GetClient(Transport,‘XALIONREST‘);
     //调用服务器端的服务
     s:=c.Service.EchoString(‘abc‘);

    memo1.Lines.Add(‘EchoString(‘‘abc‘‘)=‘+ s );
    s:=c.Service.version;
    memo1.Lines.Add(‘version=‘+ s );
    s:=c.Service.AddNumbers(34,7);
    memo1.Lines.Add(‘AddNumbers(34,7)=‘+ s );
 
end;
技术分享图片

运行结果

技术分享图片

全部正确。

这样我们就实现了kbmmw 服务器的 REST+TCP 双引擎。

再过几个小时2018年就过去了,在此我祝大家2019年元旦快乐,万事如意!

https://www.cnblogs.com/xalion/p/10202871.html

使用双引擎,让kbmmw 的客户端访问更方便(既给浏览器做服务,也给桌面程序做服务)

标签:如意   end   好处   echo   服务   方式   ant   问题   通过   

原文地址:https://www.cnblogs.com/findumars/p/10204161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!