Apache Mina開發手冊之四

2021-09-07 05:44:10 字數 1966 閱讀 2885

apache mina開發手冊之四

部落格主頁:

一、mina開發的主要步驟

1、建立乙個實現了ioservice介面的類

ioservice介面有兩個子介面:

1)ioacceptor介面,用於server

2)ioconnection介面,用於client

ioservice介面的目的是提供服務。有幾個預設實現:

niodatagramacceptor、niodatagramconnector

niosocketacceptor、niosocketconnector

vmpipeacceptor、vmpipeconnector

proxyconnector

2、設定乙個過濾器。假設須要自己定義過濾器,那麼此過濾器須要實現了iofilter介面

iofilter作用是建立一層過濾網。作用與servlet規範中的過濾器一樣。

iofilter介面的預設實現比較多,有些僅供內部使用。有些供使用者使用,並且過濾器的順序能夠影響程式的執行。

經常使用的實現類包含:

1)executorfilter:從此過濾器後的不論什麼操作都工作於這個executor

2)loggingfilter:日誌操作過濾器,記錄日誌用的

3)protocolcodecfilter:實現協議層和業務層的分離。

4)proxyfilter:**過濾器,攔截請求或響應,**給**。

5)sslfilter:用於ssl通訊

3、建立乙個實現了iohandler介面的處理類,用於處理事件

處理業務邏輯,尤其要注意裡面的iosession介面。

4、對ioservice繫結乙個port開始工作

二、mina自己定義協議

mina中的樣例:

org.apache.mina.example.chat:支援spring、jmx、自己定義協議

org.apache.mina.example.imagine:支援jmx、自己定義協議

org.apache.mina.example.sumup:支援自己定義協議

org.apache.mina.example.tapedeck:狀態機的示範、自己定義協議

三、協議解碼器

協議解碼器是依賴於protocoldecoder介面:

public inte***ce protocoldecoder

由於非同步的原因,傳過來的iobuffer所接受的內容是不全然確定的,也即iobuffer中對於一次receive後。存放的不一定是乙個完整的協議。有可能是多個不完整的協議。也可能剛好是乙個完整的協議。這些都不確定。

基於以上情況,實際開發通常是實現cumulativeprotocoldecoder類,此抽象類的作用是為解析協議提供一些幫助,此抽象類實現了protocoldecoder介面中的decode介面。並抽象出乙個dodecode方法。

dodecode方法要求假設能解析乙個協議,則把此協議解析後放入protocoldecoderoutput類,並返回true。反之則直接返回false。並須要手動回滾pos。

協議解碼器類有兩種工作方式:

1)全然交由dodecode處理

2)邏輯部分交由dodecode方法處理。iobuffer是半自己主動的

四、協議編碼器

協議編碼器依賴於protocolencoder介面。

public inte***ce protocolencoder

協議編碼器能夠做到全自己主動,由於能夠一次性把所需的內容寫入iobuffer,並交給protocolencoderoutput,後台會依據緩衝區的大小。能寫入多少就寫入多少,直到把protocolencoderoutput中須要傳送的協議全部傳送完。

Apache Mina開發手冊之三

apache mina開發手冊之三 2 mina伺服器的架構 mina伺服器的架構圖如下所示 mina客戶端需要連線到伺服器,傳送訊息並處理響應,它的架構圖如下所示 1 客戶端首先建立ioconnector聯結器 mina為socket連線構建的 啟動時與伺服器繫結。2 一旦連線建立,會建立會話,並...

PJSIP開發手冊之Presence事件包(十四)

第十四章 presence事件包 介紹 presence相關的sip定義在rfc3856 a presence event package forthesession initiation protocol sip 這個presence事件包允許乙個endpoint來訂閱乙個uri的presence...

PJSIP開發手冊之認證框架(九)

第九章 認證框架 pjsip的認證框架支援客戶端和服務端的認證。這個認證框架預設支援http摘要認證,但是其他認證機制也可以加入這個框架。下圖說明了該框架的 類圖 客戶端認證框架 客戶端認證框架管理從客戶端到所有下流的伺服器的認證處理。它可以使用正確的證書 當這樣的證書被提供 響應伺服器的挑戰,快取...