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

下載本文檔

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

文檔簡(jiǎn)介

1、第19章 消息服務(wù),本章介紹Flex數(shù)據(jù)服務(wù)中的另外一個(gè)服務(wù)——消息服務(wù)。Flex數(shù)據(jù)服務(wù)的核心是消息,它負(fù)責(zé)客戶端和服務(wù)端之間來回的數(shù)據(jù)傳遞。理解消息架構(gòu)可以更好地理解了Flex數(shù)據(jù)服務(wù)的核心架構(gòu)。,19.1 初識(shí)消息服務(wù),Flex的消息服務(wù)是基于現(xiàn)有的消息標(biāo)準(zhǔ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)用可以進(jìn)行異步通信。1.相關(guān)概念2.消息流程與消息類型3.Flex中的消息服務(wù),19.2 使用Flex消息服務(wù),從上一節(jié)介紹可以知道,消息服務(wù)在客戶端對(duì)應(yīng)的是消息API,通過它與位于服務(wù)端的應(yīng)用服務(wù)建立連接。本節(jié)主要介紹如何使用客戶端的消息API創(chuàng)建消息應(yīng)用,進(jìn)行消息的發(fā)送和接收。,

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論