翻譯|使用教程|編輯:況魚(yú)杰|2019-10-09 16:51:10.730|閱讀 590 次
概述:我們將使用服務(wù)器和客戶端來(lái)構(gòu)建解決方案。關(guān)于RealThinClient Components 的客戶端的第一課很簡(jiǎn)單,但它展示了客戶端-服務(wù)器系統(tǒng)背后的概念,該服務(wù)器系統(tǒng)可能是大型應(yīng)用程序的基礎(chǔ)。我們將使用遠(yuǎn)程功能來(lái)完成此任務(wù)。本文將會(huì)介紹編寫(xiě)您的第一個(gè)遠(yuǎn)程功能的第一節(jié)-服務(wù)器。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
RealThinClient SDK是用于開(kāi)發(fā)標(biāo)準(zhǔn)的HTTP(S)服務(wù)器,ISAPI擴(kuò)展以及客戶端的VCL控件。可用于Windows下的CodeGear Delphi 6-2010。關(guān)于RealThinClient SDK的教程會(huì)持續(xù)更新,本節(jié)是RealThinClient SDK的第四課,如何從服務(wù)器發(fā)送小文件。
點(diǎn)擊下載最新版RealThinClient SDK
服務(wù)器
這是我們有關(guān)如何使用遠(yuǎn)程功能的第一個(gè)示例。基本上,我們正在使用:
rtcServerModule
rtcFunctionGroup
rtcFunction
使用這三個(gè)組件,我們可以編寫(xiě)可以由RTC客戶端調(diào)用的函數(shù)。
步驟:
打開(kāi)一個(gè)新項(xiàng)目
我們?cè)贗DE中打開(kāi)一個(gè)新項(xiàng)目。
將Form1的Caption屬性更改為Server for Remote Function Calls。
使用RtcHttpServer組件
從組件的面板中獲取RtcHttpServer并將其拖到項(xiàng)目的主窗體中,然后,將其重命名為RtcHttpServer。
將RtcHttpServer1組件重命名為RtcHttpServer,在屬性中,將端口設(shè)置為80。
現(xiàn)在,為我們的主窗體定義OnCreate事件,以使我們的RtcHttpServer組件在應(yīng)用程序啟動(dòng)后立即開(kāi)始偵聽(tīng)請(qǐng)求。
現(xiàn)在,我們已經(jīng)配置了RtcHttpServer組件并準(zhǔn)備接受請(qǐng)求。
procedure TForm1.OnCreate(Sender: TObject) begin RtcHttpServer.Listen(); end;
使用RtcServerModule和RtcFunction組件
從RTC服務(wù)器選項(xiàng)卡上,在窗體上放置一個(gè)RtcFunctionGroup:
將其重命名為RtcFunctionGroup對(duì)于要實(shí)現(xiàn)遠(yuǎn)程功能的每個(gè)窗體或模塊,將使用一個(gè)FunctionGroup。所述RtcFunctionGroup組件提供訪問(wèn)一組遠(yuǎn)程功能。
要實(shí)現(xiàn)遠(yuǎn)程功能,您將至少需要一個(gè)RtcFunctionGroup組件并將一個(gè)或多個(gè)RtcFunction組件鏈接到該組件。功能組用于將功能調(diào)用作為來(lái)自同一組的其他功能調(diào)用的參數(shù)。RtcServerModule和RtcClientModule組件主要使用它來(lái)保存其遠(yuǎn)程功能的實(shí)現(xiàn)。
接下來(lái),從RTC服務(wù)器選項(xiàng)卡上,在窗體上放置一個(gè)RtcServerModule。
對(duì)于RtcServerModule
設(shè)置FunctionGroup = RtcFunctionGroup
設(shè)置ModuleFileName = / mytest
設(shè)置服務(wù)器 = RtcHttpServer
ModuleFileName屬性是大小寫(xiě)敏感的,所以記得很清楚,你在這里干什么用的,你將不得不使用完全相同的ModuleFileName在RtcClientModule組件的客戶端。您將為每個(gè)要實(shí)現(xiàn)的功能使用一個(gè)RtcFunction組件。
所述RtcServerModule組件接受該請(qǐng)求,并使用TRtcFunctionGroup組件來(lái)執(zhí)行接收的功能并且準(zhǔn)備的結(jié)果。如果接收到的對(duì)象內(nèi)部有函數(shù)調(diào)用,則將執(zhí)行這些函數(shù),并且生成的對(duì)象將僅包含數(shù)據(jù)。結(jié)果對(duì)象將被發(fā)送回發(fā)出請(qǐng)求的客戶端。如果發(fā)生異常,執(zhí)行將被中止,發(fā)送回客戶端的對(duì)象將成為異常消息。
現(xiàn)在,從RTC服務(wù)器選項(xiàng)卡上,在窗體上放置一個(gè)RtcFunction:
設(shè)置FunctionGroup = RtcFunctionGroup
設(shè)置FunctionName = Hello
這個(gè)RtcFunction是我們的遠(yuǎn)程功能。要使用它,我們需要定義一個(gè)函數(shù)名稱(chēng),將其鏈接到一個(gè)功能組并定義其OnExecute事件。
如果發(fā)生異常(您也可以在OnExecute事件處理程序中引發(fā)),則發(fā)出請(qǐng)求的客戶端將因此獲得異常消息。
您可以在一個(gè)請(qǐng)求中組合多個(gè)函數(shù)調(diào)用,或者將函數(shù)調(diào)用作為參數(shù)傳遞給其他函數(shù)調(diào)用。這對(duì)您實(shí)現(xiàn)的功能沒(méi)有影響,因?yàn)樵趫?zhí)行所有函數(shù)調(diào)用(客戶端可能已將其定義為參數(shù))之后,您的函數(shù)將始終接收純數(shù)據(jù)。
而在串行功能的情況下調(diào)用(稱(chēng)為一個(gè)請(qǐng)求不止一個(gè)功能),如果一次調(diào)用將異常結(jié)束了,對(duì)于結(jié)果該電話將被rtc_Exception(用適當(dāng)?shù)膃ror消息),而任何先前的函數(shù)返回的結(jié)果并且請(qǐng)求的執(zhí)行被中止。
編寫(xiě)我們的RtcFunction的OnExecute事件
procedure TForm1.HelloExecute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); begin Result.asString := 'Hello, ' + Param.asString['name'] end;
保存,編譯并運(yùn)行我們的項(xiàng)目,以檢查一切是否正常。
保存該項(xiàng)目,將其命名為任意名稱(chēng)。記住這是您的Server,因此使其有意義。保存項(xiàng)目后,編譯并運(yùn)行它以檢查此處是否一切正常。關(guān)閉它以創(chuàng)建您的客戶端應(yīng)用程序。
下一節(jié)我們將會(huì)接著介紹本課程的第二節(jié)-客戶端,如果您有任何的建議和疑惑都可以在評(píng)論區(qū)留言,也希望感興趣的朋友可以持續(xù)關(guān)注本教程。
如果您對(duì)想要購(gòu)買(mǎi)正版授權(quán)RealThinClient SDK Pro,可以聯(lián)系咨詢相關(guān)問(wèn)題。
關(guān)注慧聚IT微信公眾號(hào) ???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: