Flex - Dịch vụ RPC

Flex cung cấp dịch vụ RPC để cung cấp dữ liệu phía máy chủ cho phía máy khách. Flex cung cấp một lượng kiểm soát hợp lý đối với dữ liệu phía máy chủ.

  • Sử dụng các dịch vụ Flex RPC, chúng tôi có thể xác định các hành động của người dùng sẽ được thực thi ở phía máy chủ.

  • Flex RPC Sservices có thể được tích hợp với bất kỳ công nghệ phía máy chủ nào.

  • Một trong những Dịch vụ Flex RPC cung cấp hỗ trợ sẵn có cho dữ liệu nhị phân nén được truyền qua dây và khá nhanh.

Flex cung cấp ba loại Dịch vụ RPC sau

Sr.No Dịch vụ và mô tả RPC
1

HttpService

Thẻ <mx: HTTPService> được sử dụng để đại diện cho đối tượng HTTPService trong tệp MXML. Khi bạn thực hiện cuộc gọi đến phương thức send () của đối tượng HTTPService, nó thực hiện một yêu cầu HTTP đến URL được chỉ định và phản hồi HTTP sẽ được trả về. Bạn cũng có thể sử dụng các phương thức HTTP HEAD, OPTIONS, TRACE và DELETE.

2

WebService

<Mx: WebService> được sử dụng để truy cập vào hoạt động của các dịch vụ web tuân thủ SOAP.

3

RemoteObject

Thẻ <mx: RemoteObject> được sử dụng để đại diện cho đối tượng HTTPService trong tệp MXML. Thẻ này cung cấp cho bạn quyền truy cập vào các phương thức của các đối tượng Java bằng cách sử dụng mã hóa Định dạng Thông báo Hành động (AMF).

Chúng ta sẽ thảo luận chi tiết về Dịch vụ HTTP. Chúng tôi sẽ sử dụng tệp nguồn XML được đặt tại máy chủ và truy cập tệp đó ở phía máy khách thông qua Dịch vụ HTTP.

Items.xml

<items>
   <item name = "Book" description = "History of France"></item>
   <item name = "Pen" description = "Parker Pen"></item>
   <item name = "Pencil" description = "Stationary"></item>
<items>

Khai báo HTTPService

Bây giờ hãy khai báo một HTTPService và chuyển nó vào url của tệp ở trên

<fx:Declarations>
   <mx:HTTPService id = "itemRequest" 
   url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>

Cuộc gọi RPC

Thực hiện cuộc gọi đến phương thức itemRequest.send () và liên kết các giá trị từ đối tượng lastResult của dịch vụ web itemRequest với thành phần Flex UI.

...
itemRequest.send();
...
<mx:DataGrid id = "dgItems" height = "80%" width = "75%" 
   dataProvider = "{itemRequest.lastResult.items.item}">
   <mx:columns>
      <mx:DataGridColumn headerText = "Name" dataField = "name" />
      <mx:DataGridColumn headerText = "Description" dataField = "description" />
   </mx:columns>
</mx:DataGrid>

Ví dụ về cuộc gọi dịch vụ RPC

Bây giờ, Chúng ta hãy làm theo các bước để kiểm tra các dịch vụ RPC trong ứng dụng Flex -

Bươc Sự miêu tả
1 Tạo một dự án với tên HelloWorld trong một gói com.tutorialspoint.client như được giải thích trong chương Flex - Create Application .
2 Sửa đổi HelloWorld.mxml như được giải thích bên dưới. Giữ phần còn lại của các tệp không thay đổi.
3 Biên dịch và chạy ứng dụng để đảm bảo logic nghiệp vụ đang hoạt động theo yêu cầu.

Sau đây là nội dung của tệp mxml đã sửa đổi src/com.tutorialspoint/HelloWorld.mxml.

<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009" 
   xmlns:s = "library://ns.adobe.com/flex/spark" 
   xmlns:mx = "library://ns.adobe.com/flex/mx" 
   minWidth = "500" minHeight = "500" creationComplete = "init(event)">
   
   <fx:Style source = "/com/tutorialspoint/client/Style.css" />
   <fx:Script>
      <![CDATA[
         import mx.events.FlexEvent;
         import mx.rpc.events.FaultEvent;
         import mx.rpc.events.ResultEvent;

         protected function init(event:FlexEvent):void {
            itemRequest.send();				
         }
      ]]>
   </fx:Script>
   
   <fx:Declarations>
      <mx:HTTPService id = "itemRequest" 
         url = "http://www.tutorialspoint.com/flex/Items.xml" />
   </fx:Declarations>
   
   <s:BorderContainer width = "630" height = "480" id = "mainContainer" 
      styleName = "container">
      <s:VGroup width = "100%" height = "100%" gap = "10" 
         horizontalAlign = "center" verticalAlign = "middle">
         <s:Label id = "lblHeader" text = "RPC Service Demonstration" 
            fontSize = "40" color = "0x777777" styleName = "heading" />
         
         <s:Panel id = "parentPanel" title = "Using RPC Services"  
            width = "500" height = "200" >
            <s:layout>
               <s:VerticalLayout  gap = "10" 
                  verticalAlign = "middle" horizontalAlign = "center" />
            </s:layout>						
            
            <mx:DataGrid id = "dgItems" height = "80%" width = "75%" 
               dataProvider = "{itemRequest.lastResult.items.item}">
               
               <mx:columns>
                  <mx:DataGridColumn headerText = "Name" dataField = "name" />
                  <mx:DataGridColumn headerText = "Description" 
                     dataField = "description" />
               </mx:columns>
            </mx:DataGrid>
         </s:Panel>	
      </s:VGroup>	 
   </s:BorderContainer>	
</s:Application>

Khi bạn đã sẵn sàng với tất cả các thay đổi được thực hiện, hãy để chúng tôi biên dịch và chạy ứng dụng ở chế độ bình thường như chúng tôi đã làm trong chương Flex - Create Application . Nếu mọi thứ đều ổn với ứng dụng của bạn, ứng dụng sẽ cho kết quả sau: [ Dùng thử trực tuyến ]