1. 程式人生 > >XMPP即時通訊資料:

XMPP即時通訊資料:


//-------------------------------------------

XMPP:體系架構:

Client,Server,Gateway.三個角色。

    1,會話管理層,:負責客戶端會話認證。線上狀態,使用者聯絡表等。

    2,資料儲存器(XDB):連線資料庫系統,保持使用者資訊。通訊日誌等。

    3,聯結器管理器:管理與客戶端之間的連結。

    4,伺服器聯結器:管理xmpp伺服器之間的連線。

    5,傳輸器:建立xmpp伺服器與非xmpp伺服器通訊。

//--------------------------------------------

工作原理:


所有從一個Client到另一個client的jabber訊息和資料都要通過xmpp server.


1,client連線到server。

2,server利用本地目錄系統的證書對其認證。

3,client指定目標地址,讓server告知目標狀態。

4,server查詢,連線並進行相互認證。

5,client間進行互動。

//--------------------------------------------

XMPP:統一的JID地址:

    格式:JID=[node"@"]domain["/"resource]

eg:[email protected]/res

domain:伺服器域名。
node:使用者名稱。
resource:屬於使用者的位置或裝置。

一個使用者可以同時以多種資源與同一個XMPP伺服器連線。

//--------------------------------------------
XMPP;xml訊息格式定義:


xmpp:xml包括三個元素:

示例:

<stream>
    <presence>
        <status/>
    </presence>

    <message>
        <body/>
    </message>

    <iq>
        <bind/>
    </iq>

</stream>

persence:確定當前使用者的狀態,線上,忙,下線。

message:封裝使用者之間的訊息。

iq:資訊/請求:是一個請求-響應機制。管理xmpp伺服器上兩個使用者的交換。允許他們通過相應的xml格式的查詢和相應。
    iq:的屬性包括:type:包括:
    
                    GET:獲取當前域值。SET:設定或者替換get查詢的值。
    
                           Result:說明成功的相應了先前的查詢。

                    Error:查詢和響應中出現的錯誤。

//--------------------------------------------

XMPP:協議簇:XMPP,SASL,TLS,TCP.


XMPP採用SASL作為身份認證的協議。

    SASL包含的資訊:

        <服務名>:XMPP
        <初始化序列>
        <交換序列>
        <安全層協商>

順序:[TCP]-->[TLS]-->[SASL]-->[XMPP].

//----------------------------------------------

Mina伺服器對外提供的一些介面:



IoServer(負責底層通訊接入)。這個介面在一個執行緒上負責套接字的建立。擁有自己的Selector,監聽是否有連線被建立。

IoAcceptor(相當於網路應用程式中的伺服器端)

IoConnector(相當於客戶端);

IoserviceListener(監聽器);

IoProcessor(執行緒相關的介面);

Iosession(當前客戶端到伺服器端的一個連線例項)

IoSessionConfig(話的配置資訊,主要包括:讀緩衝區大小,會話資料吞吐量,計算吞吐量的時間間隔,指定會話段的空閒時間,寫請求操作超時時間)

IoFilter:過濾器主要用於懸接通訊層介面與業務層介面。這個介面定義一組攔截器,這些攔截器可以包括日誌輸出,黑名單過濾,資料的編碼與解碼等功能,其中資料的encode與decode是最為重要的也是你在使用Mina時最主要關注的地方。

IoHandler(業務處理邏輯),這個介面負責編寫業務邏輯,也就是接收,傳送資料的地方。


Mina框架的應用分為三個模組:建立連線(Ioserver)---->新增訊息過濾器(IoFilter)--->新增業務處理(IoHandler)。


mina官網:http://mina.apache.org/

//----------------------------------------------

OpenFire:


java語言編寫,基於XMPP協議,開源的實時協作的伺服器,具有跨平臺的能力。

基於可擴充套件的WEB控制管理介面。基於外掛的開發框架,高可擴充套件性。

穩定支援上萬使用者的併發操作。

Openfire與客戶端採用的是C/S架構,一個伺服器要負責為連線在其上的客戶端提供服務。

基於匯流排的設計方式,各個Module都是單例,使用者通過匯流排獲得Module相關例項,所有的Module大致分為以下幾類:

1,提供服務功能,

2,提供處理功能。

3,提供配置功能,

4,提供監聽功能,

5,提供網路功能。


//------------------------------------------------


Smack是一個用於和XMPP伺服器通訊的類庫,由此可以實現即時通訊聊天。


1,支援XEP-198規範,記流的管理。

2,原生支援Android。

3,Smack4.1可替代aSmack庫。

改進:

1,XMPPConnection變更為介面。

2,重新實現了SASL的認證。

3.添加了IQ請求控制代碼。

4,XMPPConnection.addPacketListener方法被拋棄了。

5,StringUtils工具類。

6,訊息監聽器的變化。

7,連線配置ConnectionConfiguration類使用了Builder設計模式。


簡單易用,並且有十分強大的API。

1,使用者不需要進行包級別的編碼。

2,使用者不需要熟悉XMPP XML格式。

3,提供了簡單的設計以進行通訊。允許在每個訊息中設定任意數量的屬性,包括java物件。

4,Apache許可下的開源類庫。

5,Smack的唯一必要條件是JDK1.6或者更高版本。

官方文件:http://igniterealtime.org/projects/smack/index.jsp













相關推薦

XMPP即時通訊資料

//-------------------------------------------XMPP:體系架構: Client,Server,Gateway.三個角色。     1,會話管理層,:負責客戶端會話認證。線上狀態,使用者聯絡表等。     2,資料儲存器(XDB

XMPP即時通訊協議使用(二)——基於Smack相關操作

package com.test; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.

XMPP即時通訊機制

XMPP(Extensible Messaging and Presence Protocol)可擴充套件訊息呈現處理協議,一種基於XML的協議。 1、 XMPP可以實現多個客戶端、多個伺服器、多個閘道器的即時通訊 ; 2、 通常客戶端與伺服器連線的端為

網易雲信即時通訊推送保障及網路優化詳解(三)如何在弱網環境下優化大資料傳輸

對於移動 APP 來說,IM 功能正變得越來越重要,它能夠建立起人與人之間的連線。社交類產品中,使用者與使用者之間的溝通可以產生出更好的使用者粘性。在複雜的 Android 生態環境下,多種因素都會造成訊息推送不能及時達到客戶端。另外,不穩定的行動網路也給資料傳輸的速率和可靠

Socket.IO介紹支持WebSocket、用於WEB端的即時通訊的框架

網絡 進行 最新版本 ajax 並且 移動 接口 事件 ODB 一、基本介紹   WebSocket是HTML5的一種新通信協議,它實現了瀏覽器與服務器之間的雙向通訊。而Socket.IO是一個完全由JavaScript實現、基於Node.js、支持WebSocket的協議

Openfire XMPP Smack RTC IM 即時通訊 聊天

ray 控制臺 cati 探測 ica strong ttext 包括 login Openfire XMPP Smack RTC IM 即時通訊 聊天 目錄 目錄簡介Openfire 簡介相關的幾個名詞SmackSparkJIDXMPPOpenfire 安裝配置測

詳解C# 網路程式設計系列實現類似QQ的即時通訊程式

https://www.jb51.net/article/101289.htm   引言: 前面專題中介紹了UDP、TCP和P2P程式設計,並且通過一些小的示例來讓大家更好的理解它們的工作原理以及怎樣.Net類庫去實現它們的。為了讓大家更好的理解我們平常中常見的軟體QQ的工作原理,所以在本專題

即時通訊音視訊開發(十)實時語音通訊的迴音消除技術詳解

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(八):常見的實時語音通訊編碼標準》 《即時通訊

即時通訊音視訊開發(九)實時語音通訊的迴音及迴音消除概述

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(七):音訊基礎及編碼原理入門》 《即時通訊音視

即時通訊音視訊開發(八)常見的實時語音通訊編碼標準

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(六):如何開始音訊編解碼技術的學習》 《即時通

即時通訊音視訊開發(七)音訊基礎及編碼原理入門

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(五):認識主流視訊編碼技術H.264》 《即時

即時通訊音視訊開發(六)如何開始音訊編解碼技術的學習

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(四):視訊編解碼之預測技術介紹》 《即時通訊音

即時通訊音視訊開發(五)認識主流視訊編碼技術H.264

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(三):視訊編解碼之編碼基礎》 《即時通訊音視訊

即時通訊音視訊開發(四)視訊編解碼之預測技術介紹

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹》 《即時通訊音

即時通訊音視訊開發(三)視訊編解碼之編碼基礎

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(一):視訊編解碼之理論概述》 《即時通訊音視訊

即時通訊音視訊開發(二)視訊編解碼之數字視訊介紹

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 本文是系列文章中的第2篇,本系列文章的大綱如下:   《即時

即時通訊音視訊開發(一)視訊編解碼之理論概述

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹》 《即時通訊音

HTTP|通訊資料轉發程式代理、閘道器和隧道

HTTP 通訊時,除客戶端和伺服器以外,還有一些用於通訊資料轉發的應用程式,例如代理、閘道器和隧道。它們可以配合伺服器工作。     這些應用程式和伺服器的作用是將客戶端的請求轉發給通訊線路上的下一站伺服器和將從那臺伺服器傳送的響應轉發給客戶端。     1>代理

通訊常識波特率、資料傳輸速率與頻寬的相互關係

【頻寬W】     頻寬,又叫頻寬,是資料的傳輸能力,指單位時間內能夠傳輸的位元數。高頻寬意味著高能力。數字裝置中頻寬用bps(b/s)表示,即每秒最高可以傳輸的位數。模擬裝置中頻寬用Hz表示,即每秒傳送的訊號週期數。通常描述頻寬時省略單位,如10M實質是

Android學習筆記--基於XMPP即時通訊

一、常見即時通訊實現 socket openfire+asmack 環信 信鴿 融雲 二、XMPP優勢 1. 開放性 XMPP協議是自由、開放、公開的,並且易於瞭解。而且在客戶端、伺服器、元件、原始碼庫等方面,都已經各自有多種實現。 2.跨平臺 客戶端只要基於X