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