xmpp就是jabber協議的正式名稱。其核心協議就是乙個通過socket等媒介傳送xml的規範。非常簡單,好實現。
先是通過socket建立乙個網路連線
然後客戶端向伺服器傳送乙個這樣的xml開始標籤
然後伺服器會返回乙個這樣的標籤,作為握手訊號
然後這就標誌著雙方可以開始xml流的互通了
斷開似乎不需要傳送,但也不一定,需要再詳細閱讀一下協議。目前是直接斷開socket連線,並沒有多大問題。
中間的xml流的互通的形式是...這樣的乙個xml節(xml stanza)的傳送過去然後伺服器用...這樣的xml節來回應。目前核心協議規定的xml節有三個presence, iq, message。
綜觀整體的協議溝通的過程,就是把乙個完整的xml檔案一段一段的傳送過去,是根節點,然後每次傳送的是根節點下的那些次根節點。
所以目前用delphi實現需要三個類:
txmppclient(繼承自tidtcpcustom)
txmpplistenerthread(繼承自tidthread,因為這個thread比vcl那個要好用一些。需要專門的偵聽執行緒是因為xmpp沒有像http那樣有明確的一問一答的應答形式。像message這種xml stanza可能在任何時候到達。所以需要乙個專門的偵聽執行緒不斷的從系統的socket stack中把東西讀出來)
目前實現的核心在txmppclient上,需要四個基本的功能,connect(連線上之後自動傳送 最近需要做乙個im即時聊天工具專案,上網蒐集了一些關於xmpp方面的資料,將c c 客戶端庫都列出來了,由於e文水平不好,可能有許不多正確地方,見笑了 gloox gloox是乙個穩定功能完整的xmpp客戶端庫,使用ansi c 編寫,使用它編寫標準客戶非常容易,並能將jabber xmpp功能整合... 最近需要做乙個im即時聊天工具專案,上網蒐集了一些關於xmpp方面的資料,將c c 客戶端庫都列出來了,由於e文水平不好,可能有許不多正確地方,見笑了 gloox gloox是乙個穩定功能完整的xmpp客戶端庫,使用ansi c 編寫,使用它編寫標準客戶非常容易,並能將jabber xmpp功能整合... 胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...XMPP客戶端庫資料
XMPP客戶端庫簡介
瘦客戶端 胖客戶端 智慧型客戶端