| RealThinClient SDK 包里包含什么? |
| RealThinClient SDK :服務器端組件 |
| RtcHttpServer: 實現(xiàn)TCP/IP上的HTTP協(xié)議,用于將RTC組件編譯到獨立的服務器應用程序中(繼承TRtcDataServer). 所有高層的服務器端的RTC組件都使用TRtcDataServer 子類與HTTP客戶端(RTC客戶端、Web瀏覽器、SOAP客戶端等)通信.最好的方法是將你使用高層RTC組件編寫的代碼分開到不同的數(shù)據(jù)模塊中,然后使用單獨的一個DataModule將RtcHttpSever編譯到一個獨立的應用程序(EXE)中。 |
RtcISAPIServer: 實現(xiàn)ISAPI接口,擴展ISAPI兼容的Web服務器(繼承TRtcDataServer)。 所有高層的服務器端的RTC組件都使用TRtcDataServer 子類與HTTP客戶端(RTC客戶端、Web瀏覽器、SOAP客戶端等)通信。最好的方法是將你使用高層RTC組件編寫的代碼分開到不同的數(shù)據(jù)模塊中,然后使用單獨的一個DataModule將RtcISAPISever編譯到ISAPI擴展(DLL)中。 |
| RtcMessageServer: 實現(xiàn)可擴展的基于消息的服務器端的組件,可用于通過第三方的消息層訪問RTC應用程序。RTC SDK包含一個隨時可使用的NexusDB插件,該插件使用RtcMessageServer組件將RTC應用程序整合到NexusDB服務器。 |
| RtcDataServerLink: 在你有一些數(shù)據(jù)提供組件或服務模塊組件交叉的單元時是非常有用的,因為它可以群集相關的數(shù)據(jù)提供組件以及將它們鏈接到它們的數(shù)據(jù)服務器。如果你只有一個或少數(shù)幾個數(shù)據(jù)提供組件,你可以直接將鏈接它們到數(shù)據(jù)服務器連接組件,而無需RtcDataServerLink。 |
| RtcDualDataServerLink: 連接一組RTC組件到2個或更多的服務器連接組件(RtcHttpServer 和 RtcMessageServer)。這可以讓你只需編寫你的應用程序一次,然后可以通過標準的HTTP協(xié)議或通過安全的HTTPS協(xié)議(如果需要也可以通過不同的基于消息的傳輸比如NexusDB傳輸層)獲取。 |
RtcDataProvider: 用于實現(xiàn)處理HTTP請求和響應的事件。每一個Data Provider只響應對應自己的請求而不會處理其他的請求。Data Providers以插件的形式在服務器上工作,這使得Data Providers可以單獨或則與其他RTC組件結合來開發(fā)多功能的服務器。 下面是一些可能用到的Data Providers列表:
- File provider 用于傳送文件
- PHP provider 用于處理php腳本和發(fā)送html頁面
- SOAP provider 用于實現(xiàn)不同的Web服務器
- Page providers 用于生成動態(tài)的 HTML 頁面
- Image providers 用于為Web動態(tài)生成圖片
|
| RtcServerModule: 執(zhí)行一組遠程函數(shù)。它可以讓服務器為自己的遠程函數(shù)提供遠程訪問的能力。RtcServerModule沒有事件可執(zhí)行,你只需要在一邊將RtcServerModule和它的服務器連接起來,同時配合另一邊的RtcFunctionGroup就可以激活遠程函數(shù)。 |
| RtcFunctionGroup: 提供訪問函數(shù)的功能。當配合RtcServerModule使用時,它會自動為所有的RTC客戶端激活遠程訪問的功能。當配合RtcClientModule使用時,服務器可以以客戶端函數(shù)調用的返回結果的形式調用客戶端的函數(shù)。為了實現(xiàn)遠程函數(shù),你至少需要一個RtcFunctionGroup組件以及連接一個或多個RtcFunction組件,F(xiàn)unction Groups也可以讓你調用同一組的其他函數(shù)。 RtcFunctionGroup首先是由RtcServerModule 和 RtcClientModule為了實現(xiàn)遠程函數(shù)而使用的,但是其他的組件也可以直接使用它。 |
RtcFunction: 為你的RTC服務器添加新的遠程函數(shù)的步驟是:
- 將一個RtcFunction連接到一個RtcFunctionGroup,
- 務必讓Function Group指派一個RtcServerModule,
- 選擇一個"FunctionName",然后在OnExecute事件中編寫自己的代碼。
當編寫遠程函數(shù)時,你除了自己的代碼外無需再考慮其他的事情。一旦出現(xiàn)異常(你可以在OnExecute事件里拋出異常),客戶端會得到異常信息(Result.isType=rtc_Exception),所以你不需要擔心。 |
RtcScriptEngine: 可以在HTML和XML文件里使用像Pascal一樣的腳本語言。 當使用RTC腳本引擎時,你就可以決定你的Delphi函數(shù)、編譯服務器或ISAPI擴展應該有多少應用程序代碼以及在你的HTML/XML文件中應該有多少腳本。這使得你可以將PHP和JSP這樣的語言和Delphi整合。 |
| RealThinClient SDK : 客戶端組件 |
RtcHttpClient: 它負責使用HTTP/HTTPS協(xié)議和你的服務器直接通信。 它發(fā)送由高層客戶端RTC組件比如RtcDataRequest 和 RtcClientModule發(fā)起的請求,然后接收響應并同樣使用高層組件處理這些響應。 |
| RtcMessageClient:它是一個可以將你的高層客戶端組件(比如DataRequest 和 ClientModule)整合到第三方傳輸層的組件。比如,你可以在你的NexusDB服務器中使用NexusDB插件調用RTC遠程函數(shù)。 |
| RtcDataClientLink: 在你有大量的Data Request或Client Module交叉單元時它是非常有用的。因為它可以群集相關的客戶端請求組件以及與它們的數(shù)據(jù)客戶端連接相整合。如果你只有一兩個數(shù)據(jù)請求組件,你可以直接與數(shù)據(jù)客戶端連接組件整合,而不需要RtcDataClientLink。 |
| RtcDualDataClientLink: 用于創(chuàng)建小型的客戶端連接池,當提交一個請求時,組件可以根據(jù)當前可用連接中掛起的請求的數(shù)量決定使用哪個連接。一個新的請求將由掛起/活動請求最少的連接提交,除非你明確的指出了不同的連接對象。 |
| RtcDataRequest: 與RtcDataProvider相對應的客戶端組件。它可以讓客戶端向RTC服務器或其他的HTTP服務器提交請求。使用該組件,你可以向一個Web服務器請求一個文件,提交一個SOAP請求,執(zhí)行一個服務器端的PHP腳本等等。你可以使用該組件請求HTTP服務器提供的所有服務。 |
| RtcClientModule: 與RtcServerModule相對應的客戶端組件。它可以讓客戶端調用由服務器的一個服務模塊提供的函數(shù)。RtcClientModule沒有事件可以實現(xiàn),你只需要整合一個客戶端連接組件(RtcHttpClient)就可以調用遠程函數(shù)。如果你定義了客戶端函數(shù)然后整合到RtcClientModule中,那就可以執(zhí)行這些客戶端遠程函數(shù)。沒有特別需要實現(xiàn)的部分。服務器是以客戶端對服務器端調用的返回結果的形式調用客戶端遠程函數(shù)的。 |
RtcResult: 處理遠程函數(shù)調用返回的結果。使用OnResult事件(OnResult事件接收連接(Sender:TRtcConnection),傳遞的參數(shù)(Param:TRtcValue)以及接收到的結果(Result:TRtcValue)),你可以輕松的編寫處理返回結果的代碼。
- 也許只是在函數(shù)是否執(zhí)行成功的檢查,
- 或則彈出一個對話框,
- 或則創(chuàng)建一個包含所有接收到的數(shù)據(jù)的窗體,
- 或則裝填在同一窗體或datamodule的其他組件(比如,從數(shù)據(jù)庫中填充數(shù)據(jù)到ClientDataSet)。
|