freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

xmpp協(xié)議及其服務(wù)器端的openfire插件開發(fā)(專業(yè)版)

2025-12-28 08:26上一頁面

下一頁面
  

【正文】 (2, ().getNode())。 } } } public void sessionDestroyed(Session session) { Connection con = null。 (1, getHostAddress(session))。 try { con = ()。 import 。 import 。程序 //1 處主要是獲取創(chuàng)建返回的 IQ,并獲取原來 IQ 的子元素(用于創(chuàng)建我們返回的 IQ);程序 //2 處很關(guān)鍵,如果你不調(diào)用 createCopy 方法,程序會出錯(程序會死鎖還是什么,忘記咧,不好以西)。 info = new IQHandlerInfo(gruops, NAME_SPACE)。其余的都是描述信息,只要你提供了正確的描述信息,一般都不會出錯。 客戶端連接的處理過程: 當(dāng)有客戶端進(jìn)行連接時根據(jù) Mina 框架的模式首先調(diào)用的是 sessionOpened 方法。程序 //1 處主要是獲取創(chuàng)建返回的 IQ,并獲取原來 IQ 的子元素(用于創(chuàng)建我們返回的 IQ);程序 //2 處很關(guān)鍵,如果你不調(diào)用 createCopy 方法,程序會出錯(程序會死鎖還是什么,忘記咧,不好以西)。 info = new IQHandlerInfo(gruops, NAME_SPACE)。其余的都是描述信息,只要你提供了正確的描述信息,一般都不會出錯。 Openfire(原名 Wildfire)是基于 XMPP協(xié)議由 Jive software 公司開發(fā)的一個開源項目.它是實現(xiàn) XMPP 協(xié)議的 Server 端包. Openfire與客戶端采用的是 C/S 架構(gòu).一個服務(wù)器要負(fù)責(zé)為連接在其上的客戶端提供服務(wù). Openfire是由 Java 語言編寫的具有跨平臺能力的一款優(yōu)秀開源軟件。 from : 指發(fā)送方的名字或標(biāo)示 (id)o Text: 此元素包含了要提交給目標(biāo)用戶的信息。這使得客戶端編寫變得非常容易,更新系統(tǒng)功能也同樣變得容易。 XEP0167 Jingle Audio Content Description Format。所有的這些業(yè)務(wù)都是通過三種基本的 XML 節(jié)來完成的: IQ Stanza( IQ 節(jié)) , Presence Stanza( Presence 節(jié)) , Message Stanza( Message 節(jié) )。 XMPP在 ClienttoServer通信,和 ServertoServer通信中都使用 TLS (Transport Layer Security)協(xié)議作為通信通道的加密方法,保證通信的安全。 XMPP(Extensible Messaging and Presence Protocol,可擴展的消息和出席協(xié)議 )是一種基于XML 的傳遞消息路由和出席信息 (Presence)的協(xié)議,它為不同的網(wǎng)絡(luò)之間互聯(lián)提供了一種安全而簡單的編程語言,是 Jabber 系統(tǒng) (一種開放源代碼的即時通信 IM 系統(tǒng) ,Openfire 系統(tǒng)的前稱 )的基礎(chǔ),其所具備的開放特性,使開發(fā)者之間互相合作,促進(jìn)了即時通信領(lǐng)域技術(shù)的進(jìn)步與交流.對用戶而言,在面對現(xiàn)有的各種即時 通信服務(wù),沒有統(tǒng)一標(biāo)準(zhǔn),無法實現(xiàn)互聯(lián)互通的局面下, XMPP 的出現(xiàn),實現(xiàn)了整個即時通信服務(wù)協(xié)議的統(tǒng)一,促進(jìn)了服務(wù)器之間的準(zhǔn)即時操作.即使其操作系統(tǒng)和瀏覽器不同的情況下, XMPP 協(xié)議將最終允許因特網(wǎng)任何用戶之間的消息傳送.近幾年來,由于即時通信 (IM)巨大的商業(yè)價值,僅國內(nèi)就出現(xiàn)了 ,網(wǎng)易泡泡,新浪 UC 等多種 IM 系統(tǒng).本文將從實際項目開發(fā)的角度出發(fā),探討 XMPP 協(xié)議及其服務(wù)器端實現(xiàn)的應(yīng)用. 在 IETF 中,把 IM 協(xié)議劃分為四種協(xié)議,即即時信息和出席協(xié)議 (Instant Messaging and Presence Protocol, IMPP)、出席和即時信息協(xié)議 (Presence and Instant Messaging Protocol, PRIM)、針對即時信息和出席擴展的會話發(fā)起協(xié)議 (Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, SIMPLE),以及可擴展的消息出席協(xié)議 (XMPP)。標(biāo)準(zhǔn)化的核心絀果分為兩部分; 核心的 XML 流傳輸協(xié)議 基于 XML FreeEIM 流傳輸?shù)募磿r通訊擴展應(yīng)用 XMPP 的核心XML 流傳輸協(xié)議的定義使得 XMPP 能夠在一個比以往網(wǎng)絡(luò)通信協(xié)議更規(guī)范的平臺上。這個協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時消息,即使其操作系統(tǒng)和瀏覽器丌同。而 XMPP 的核心部分就是一個在網(wǎng)絡(luò)上分片斷發(fā)送 XML 的流協(xié)議。 4. XMPP 具有很好的彈性。 Core 文檔還規(guī)定了錯誤的定義及處理、 XML 的使用規(guī)范、 JID( Jabber Identifier, Jabber 標(biāo)識符)的定義、命名規(guī)范等等。將 XMPP 綁定到 HTTP 而不是 TCP,主要用于不能夠持久的維持與服務(wù)器 TCP 連接的設(shè)備。事實上, XMPP 系統(tǒng)架構(gòu)對客戶端只有很少的幾個限制。如果用戶在線 jsm 立即提交 。 (8) 服務(wù)器端返回數(shù)據(jù)。 Openfire 是一個用 Java 實現(xiàn)的 XMPP 服務(wù)器,客戶端可以通過 IQ 的方式與其進(jìn)行通信(其實就是 XML),客戶端和服務(wù)器之間的通信是依靠底層 Smack 庫提供的各種功能來完成的。 private static final String NAME_SPACE = :im:group。 } } 可以看到主要有兩個方法,一個是 getInfo() 這個方法的目的是提供要解析的命名空間,在本例中,這個 IQHandler 對每個命名空間為 :im:group 的實例進(jìn)行處理;還有一個最重要的方法: handleIQ() 該方法對包含指定命名空間的 XML 進(jìn)行解析,然后返回一個解析好的 IQ。 IoHandler: MINA 中,所有的業(yè)務(wù)邏輯都有實現(xiàn)了 IoHandler 的 class 完成 ,當(dāng)事件發(fā)生時,將觸發(fā) IoHandler 中的方法 : sessionCreated sessionOpened sessionClosed sessionIdle exceptionCaught messageReceived messageSent 在 Openfire 中客戶端和服務(wù)器連接的 IoHandler 實現(xiàn)類是 ClientConnectionHandler,它是從 ConnectionHandler 中繼承來的。 Openfire 是一個用 Java 實現(xiàn)的 XMPP 服務(wù)器,客戶端可以通過 IQ 的方式與其進(jìn)行通信(其實就是 XML),客戶端和服務(wù)器之間的通信是依靠底層 Smack 庫提供的各種功能來完成的。 private static final String NAME_SPACE = :im:group。 } } 可以看到主要有兩個方法,一個是 getInfo() 這個方法的目的是提供要解析的命名空間,在本例中,這個 IQHandler 對每個命名空間為 :im:group 的實例進(jìn)行處理;還有一個最重要的方法: handleIQ() 該方法對包含指定命名空間的 XML 進(jìn)行解析,然后返回一個解析好的 IQ。 import 。 import 。 PreparedStatement pstmt = null。 if (!().getUserManager().isRegisteredUser(())) { return。 ()。 } // write history entry if (historyDays != 0) { try { con = ()。 (5, (()))。 if (!().getUserManager().isRegisteredUser(())) { return。 (4, ().getResource())。 } catch (SQLException e) { (”Unable to clean up user status”, e)。 private static final String UPDATE_USER_STATUS = “UPDATE userStatus SET online = 1, lastIpAddress = ?, lastLoginDate = ? ” + “Where username = ? AND resource = ?”。 import 。 Openfire 插件開發(fā)心得:基于 XMPP 實現(xiàn)類 Twitter 功能 Openfire 是 XMPP 協(xié)議最好的服務(wù)器軟件。 Element groups = ()。 /* * (nonJavadoc) * * see destroyPlugin() */ public void destroyPlugin() { } /* * (nonJavadoc) * * see initializePlugin(, * ) */ public void initializePlugin(PluginManager manager, File pluginDirectory) { (注冊群組樹 IQ 處理器 )。 當(dāng)有數(shù)據(jù)發(fā)送過來時, Mina 框架會調(diào)用 messageReceived 方法 messageReceived 首先從 Mina 的 session 中得到在 sessionOpened 方法中創(chuàng)建的 StanzaHandler 實例 handler,然后從 parsers 中得到一個 parser(如果 parsers 中沒有可以創(chuàng)建一個新的實例)(注意這個 parser 和在 sessionOpened 方法中創(chuàng)建的 parser 不同,這個 parser 是用來處理 Stanza 的,而在 sessionOpened 方法中創(chuàng)建的 parser 是在 filter 中用來解碼的,一句話說就是在 sessionOpened 方法中創(chuàng)建的 parser 是更低一層的 parser)。 第三章:代碼研究 Openfire 的 socket 網(wǎng)絡(luò)連接包括: ![if !supportLists]1. ![endif]服務(wù)器和服務(wù)器之間的連接(監(jiān)聽在端口 5269) ![if !supportLists]2. ![endif]外部組件和服務(wù)器之間的連接(監(jiān)聽在端口 5275) ![if !supportLists]3. ![endif]多元 (plex)連接(監(jiān)聽在端口 5269) ![if !supportLists]4. ![endif]客戶端和服務(wù)器的連接(監(jiān)聽在端口 5222) ![if !supportLists]5. ![endif]和客戶端通過 TLS/ 和服務(wù)器的連接。 Element groups = ()。 /* * (nonJavadoc) * * see destroyPlugin() */ public void destroyPlugin() { } /* * (nonJavadoc) * * see initializePlugin(ginManager, * ) */ public void initializePlugin(PluginManager manager, File pluginDirectory) { (注冊群組樹 IQ 處理器 )。服務(wù)器在運行的時候,會定時地掃描一個特定目錄下的文件,當(dāng)發(fā)現(xiàn)有新的 Jar 包出現(xiàn)時,就讀入它所有的類,分析類中有沒有支持插件接口的類,如果有,就加載并運行它。chat39。另外,服務(wù)器可以通過附加服務(wù)來進(jìn)行擴展,如完整的安全策略,允許服務(wù)器組件的連接或客戶端選擇,通向其他消息系統(tǒng)的網(wǎng)關(guān)。 ICE 傳輸機制,文件解決了如何讓防火墻或是 NAT( Network Address Translation)保護下的實體建立連接的問題。兩個文檔結(jié)合起來,就形成了一個基本的即時通信協(xié)議平臺,在這個平臺上可以開發(fā)出各種各樣的應(yīng)用。在此基礎(chǔ)上,重點研究 XMPP 協(xié)議的服務(wù)器端實現(xiàn),在項目中采用了 Openfire服務(wù)器端技術(shù)。 PRIM 最初是基于即時通信的協(xié)議,與 XMPP 和 SIMPLE 類似,但是己經(jīng)不再使用。 XMPP 的擴展協(xié)議 Jingle 使得其支持語音和視頻。而且, XMPP包含了針對服務(wù)器端的軟件協(xié)議,使乊能不另一個進(jìn)行通話,這使得開發(fā)者更容易建立客戶應(yīng)用程
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1