『壹』 androidpn tomcat版有什麼優點
在Androidpn的底層主要採用的兩大框架mina和openfire兩大框架,其中mina主要為底層數據傳輸的Socket框架。下面簡單的介紹一下Socket框架
Apache Mina Server 是一個網路通信應用框架,也就是說,它主要是對基於TCP/IP、UDP/IP協議棧的通信框架(也可以提供JAVA 對象的序列化服務、虛擬機管道通信服務等),Mina 同時提供了網路通信的Server 端、Client 端的封裝,無論是哪端,Mina 在整個網通通信結構中都處於如下的位置:
1.spring初始化並啟動過程,調用NioSocketAcceptor。
2.NioSocketAcceptor開始執行調用IoProcessor.
3.IoProcessor開始調用FilterChain。FilterChain調用相關的IoFilter的。其中ProtocolCodecFilter的過濾器調用了org.androidpn.server.xmpp.codec.XmppCodecFactory進行編碼。
4.XmppIoHandler實現自IoHanlder並調用通過openfire 的XMLLightweightParser解析相關的業務邏輯。
5.根據解析的信息調用xmpp並處理相關信息。
AndroidPN(Android Push Notification) 是一個基於XMPP協議的Java開源推送通知實現,它包含了完整的客戶端和服務端。
AndroidPN基於Openfire下的一些開源項目構建。
AndroidPN伺服器包含兩個部分,
一個是偵聽在5222埠上的XMPP服務,負責與客戶端的XMPPConnection類進行通信,作用是用戶注冊和身份認證,並發送推送通知消息。
另外一部分是Web伺服器,採用一個輕量級的HTTP伺服器,負責接收用戶的Web請求。
最上層包含四個組成部分,分別是SessionManager,Auth Manager,PresenceManager以及Notification Manager。
SessionManager負責管理客戶端與伺服器之間的會話。
Auth Manager負責客戶端用戶認證管理。
Presence Manager負責管理客戶端用戶的登錄狀態。
NotificationManager負責實現伺服器向客戶端推送消息功能。
IQHandler消息處理器的類:
IQHandler:消息處理器抽象類。
IQAuthHandler:許可權協議的消息處理類,消息的類型為:jabber:iq:auth
IQRegisterHandler:用戶注冊的消息處理類,消息類型為: jabber:iq:register
IQRosterHandler:用戶消息交互類,消息類型為:jabber:iq:roster
PresenceUpdateHandler:用戶狀態展現變化處理類。內部調用,不具有類型。