第19章 消息服務(wù)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第19章 消息服務(wù),本章介紹Flex數(shù)據(jù)服務(wù)中的另外一個服務(wù)——消息服務(wù)。Flex數(shù)據(jù)服務(wù)的核心是消息,它負責客戶端和服務(wù)端之間來回的數(shù)據(jù)傳遞。理解消息架構(gòu)可以更好地理解了Flex數(shù)據(jù)服務(wù)的核心架構(gòu)。,19.1 初識消息服務(wù),Flex的消息服務(wù)是基于現(xiàn)有的消息標準,通過為客戶端提供消息接口和在相應(yīng)的服務(wù)端創(chuàng)建消息服務(wù),來構(gòu)建消息應(yīng)用。Flex的消息服務(wù)也支持與JMS(Java Messaging Services)的集成。另外,F(xiàn)l

2、ex消息服務(wù)通過ColdFusion Event Gateway適配器向CFC(ColdFusion Component)發(fā)送消息。通過消息服務(wù),應(yīng)用可以進行異步通信。1.相關(guān)概念2.消息流程與消息類型3.Flex中的消息服務(wù),19.2 使用Flex消息服務(wù),從上一節(jié)介紹可以知道,消息服務(wù)在客戶端對應(yīng)的是消息API,通過它與位于服務(wù)端的應(yīng)用服務(wù)建立連接。本節(jié)主要介紹如何使用客戶端的消息API創(chuàng)建消息應(yīng)用,進行消息的發(fā)送和接收。,

3、19.2.1 使用消息,在Flex中,使用消息指的是客戶端應(yīng)用使用位于客戶端的消息API,向消息接收點發(fā)送并接收來自接收點的消息??蛻舳擞袃蓚€最主要的消息組件Producer和Consumer。Producer組件負責向接收點發(fā)送消息。Consumer負責向服務(wù)端的接收點訂閱消息,接收來自接收點的Producer發(fā)送的消息。可以在MXML和ActionScript中創(chuàng)建Producer和Consumer組件。Producer和Con

4、sumer組件都需要有效的消息接收點,接收點信息需要在Flex服務(wù)配置文件進行配置設(shè)置。一個Flex應(yīng)用通常包括至少一對Producer和Consumer組件。這樣在每個應(yīng)用中接收點可以需要接收Producer發(fā)送消息,并向Consumer組件發(fā)送接收到的消息。,19.2.2 使用Producer組件,Producer組件主要是用來發(fā)送消息的??梢允褂肕XML或者ActionScript創(chuàng)建Producer組件。在創(chuàng)建Produce

5、r組件的同時可以定義事件處理。Producer組件處理的事件主要有以下兩類。消息確認:當接收點成功接收到一個Produce組件發(fā)送的消息后,會廣播一個消息確認事件。錯誤:當一個接收點由于連接、服務(wù)器或者應(yīng)用層的錯誤不能成功處理一條消息,將會發(fā)布一個錯誤事件。1.使用MXML創(chuàng)建Producer組件2.使用ActionScript創(chuàng)建Producer組件3.發(fā)送消息4.向消息中添加額外信息5.消息發(fā)送錯誤處理,19.2.3

6、 使用Consumer組件,Consumer組件是用來接收消息的。同樣可以使用MXML或者ActionScript來創(chuàng)建Consumer組件。在創(chuàng)建Consumer組件的同時可以定義事件處理。Consumer組件處理的事件主要有以下兩類:接收消息:當接收點收到某個Consumer訂閱的消息后,會廣播一條消息接收事件。對應(yīng)Consumer組件的message屬性。錯誤:當某個Consumer對應(yīng)的通道不能與訂閱的接收點建立連接,訂閱請

7、求被拒絕或者是receive()方法調(diào)用失敗,會廣播錯誤事件。,19.2.4 使用Subtopic,Subtopic是用來對Producer組件向接收點發(fā)送消息進行分類。在Consumer組件中可以設(shè)置Subtopic,使得它能從訂閱的接收點接收特定Subtopic或者Subtopic集合的消息。使用通配符*可以發(fā)送或接收多個Subtopic消息。Subtopic的定義分別對應(yīng)于Produce組件和Consumer的subtopic

8、屬性。在Producer組件的subtopic屬性中,指定了組件消息發(fā)送到的目標subtopic。在Consumer組件的subtopic屬性中,指定了訂閱的subtopic。,19.3 配置消息服務(wù),Flex客戶端應(yīng)用要發(fā)送或接受消息,需要連接Flex消息服務(wù)。建立連接時,通過使用和標簽或者相應(yīng)的ActionScript API,聲明與服務(wù)端接收點的連接完成的。消息服務(wù)的接收點是發(fā)送和接收消息的端點。對接收點的配置是Flex服務(wù)配置

9、文件中對消息服務(wù)定義的一部分。本節(jié)主要討論如何配置接收點。,19.3.1 消息服務(wù)配置概述,消息服務(wù)配置主要完成的任務(wù)是定義消息接收點,對消息接收點使用安全策略,修改日志設(shè)置。消息服務(wù)的配置是在Flex服務(wù)文件中的消息服務(wù)部分進行。在默認情況下,F(xiàn)lex服務(wù)配置文件是services-config.xml,位于Web應(yīng)用中Adobe Flex Data Services 2安裝目錄下WEB_INF/flex目錄中。在Adobe加載服務(wù)

10、配置文件時,與Flex數(shù)據(jù)服務(wù)有關(guān)的各個配置文件,如消息服務(wù)文件、RPC服務(wù)文件會經(jīng)常被引用。在配置消息服務(wù)時,經(jīng)常要涉及以下幾個相關(guān)概念。1.消息服務(wù)接收點2.消息通道3.消息服務(wù)適配器4.安全,19.3.2 配置消息服務(wù)接收點,配置消息服務(wù)接收點,主要包括接收點的屬性定義、消息通道引用、適配器引用。其中接收點屬性主要有網(wǎng)絡(luò)屬性和服務(wù)器屬性。1.設(shè)置網(wǎng)絡(luò)屬性2.設(shè)置服務(wù)器屬性3.引用消息通道4.引用消息適配器,19

11、.3.3 配置消息服務(wù)適配器,Flex消息服務(wù)的配置還包括消息服務(wù)適配器的配置。這里以常用的JMS適配器為例簡要介紹適配器的配置。JMS適配器用于Flex消息應(yīng)用與Java消息系統(tǒng)交互。通過JMS適配器一個Java發(fā)布者或訂閱者都可以作為Flex客戶端。這樣Java對象可以向Flex應(yīng)用發(fā)布消息,也可以對Flex應(yīng)用發(fā)布的消息做出響應(yīng)。對于每個使用JMS適配器的接收點,需要進進行JMS適配器配置。JMS適配器配置對應(yīng)于接收點配置中的

12、標簽下的子標簽。,19.3.4 創(chuàng)建自定義的消息服務(wù)適配器,當用戶在應(yīng)用中需要使用標準適配器不能提供的功能時,可以創(chuàng)建自定義的消息服務(wù)適配器。自定義的消息服務(wù)適配器必須要繼承flex.messaging.services.ServiceAdapter類,調(diào)用flex.messaging. ServiceAdapter對象實例的方法。消息適配器核心方法是invoke()方法。當客戶端向接收點發(fā)送消息時會調(diào)用該方法,同時接收點也會調(diào)用i

13、nvoke()方法向所有訂閱的客戶端或者特定客戶端發(fā)送消息。在自定義的消息服務(wù)器要給出invoke()方法的定義。在定義invoke方法時會涉及消息服務(wù)中兩個重要的方法:MessageService.pushMessageToClients():向客戶端發(fā)送消息。該方法有兩個參數(shù),第一個參數(shù)是消息對象;第二參數(shù)是個布爾值,表示是否要使用消息選擇器語句。MessageService.sendPushMessageFromPeer():

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論