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摘要認證,但是其他認證機制也可以加入這個框架。下圖說明了該框架的 類圖 客戶端認證框架 客戶端認證框架管理從客戶端到所有下流的伺服器的認證處理。它可以使用正確的證書 當這樣的證書被提供 響應伺服器的挑戰,快取...