當前位置:編程學習大全網 - 源碼下載 - openfire兩客戶端之間能發送IQ嗎?怎麽發送?

openfire兩客戶端之間能發送IQ嗎?怎麽發送?

項目中需要用到openfire的文件傳輸,但是客戶端使用flex,官方提供的xiff包中並沒有封裝文件傳輸的功能,沒辦法,研究了幾天,在google和官方smock源碼的幫助下終於實現了xiff下的文件傳輸,在這裏做個總結。

openfire服務器是基於xmpp協議的,XMPP支持兩種文件流傳輸協議,SOCKS5 Bytestreams和 In-Band Bytestreams,SOCKS5是直接發送二進制流,而IBB是將文件轉成base64碼進行然後用message的形式進行傳輸,我這裏僅實現了SOCKS5的文件代理傳輸。

SOCKS5文件傳輸需要用到兩個協議,XEP-0065和XEP-0096

XEP-0096定義文件傳輸協議,提供了壹個模塊化框架使能交換被傳輸文件的信息以及參數的協商,也就是在傳輸文件之前協商將要傳輸的文件信息。

XEP-0065定義SOCKS5流傳輸標準協議,提供用於在任意兩個XMPP用戶之間建立字節流並進行文件傳輸。

根據我的理解,文件傳輸的過程分為協商,建立socks5連接,二進制傳輸這三個階段

協商的過程最復雜,然後是建立連接,傳輸就比較簡單,下面壹個壹個來講

協商包括初始方、目標方、代理方,初始方就是發送文件方,目標方即文件接收方,代理方是socks5代理服務器,

協商過程就是三方互相發送xml來交換信息的過程,通俗點就是三個人溝通壹下傳什麽文件和怎麽傳文件。

首先遵循XMP-0096協議,初始方給目標方發送包含文件信息的xml(如果對妳有幫助,請設置“好評”,謝謝!)

  • 上一篇:編程貓少兒編程怎麽樣
  • 下一篇:~~~~~~高手幫忙改個大智慧-L2指標公式~~謝謝啦!~~~~~
  • copyright 2024編程學習大全網