1. 程式人生 > >xmpp開發IM即時通訊系列(一)--總述

xmpp開發IM即時通訊系列(一)--總述

    本人近期研究即時通訊功能,社交元素現在已經滲透到各個領域,無論商城、遊戲、媒體類等app,為了增加使用者之間的交流,都已經開始加入即時通訊功能,可以說即時通訊在未來的手機商業應用領域是不可或缺的。開部落格寫即時通訊系列的文章不是本人首創,很多大牛都有過類似文章,我寫該系列部落格的目的:

    一是為了總結自身,積累經驗;

    二是因為以前自己在學習過程中拜讀過許多大神的高論,使自己在學習開發的過程中受益良多,並被他們無私的精神所感染,決定分享自己的一些淺薄見識,於同行交流,共同促進進步;

    三是因為今天是2016年4月9日,現在網上很多資料的內容不是抄襲,就是時間已經久遠,很多開發工具和程式碼版本都已經非常老舊,新入行的兄弟拿著新程式碼,參考著舊攻略,總會出現各種各樣的問題,另其多走不少彎路。

    綜合以上原因,本人決定,在時間允許的情況下,會持續更新該系列文章;每一篇文章中的操作,均為我的實際成功操作,所有工具、程式碼都是2016年4月9日下載,該系列的操作都是以此為基準,避免同行在交流時因為版本差異做無謂的爭執;本文為純手寫,會參考其他文章內容,但絕不惡意抄襲,不作商業用途,僅供分享交流,作者水平有限,只是抱著學習和交流的心態與大家分享,有錯誤是在所難免的,望各路英雄海涵,有錯多多指正。

    當前,即時通訊開發主要分為兩種,一是自定義通訊協議開發,這類產品主要用c++伺服器,訊息形式基於自定義的結構體,效率高,安全應也高,不開源;另一種是XMPP這一類的開源形式組織產生的網路即時通訊協議,XMPP已經被IETF國際標準組織完成了標準化工作,標準化的核心結果分為兩部分:核心的XML流傳輸協議和基於XML流傳輸的即時通訊擴充套件應用。由於資源所限,本系列使用開源的xmpp協議來開發即時通訊功能,主要包括以下內容:

    一、即時通訊伺服器的搭建

    二、移動客戶端即時通訊功能的實現

    由於網上已經有很多介紹xmpp的文章,本系列更注重實際實現,以下內容不會著重介紹,如各位有興趣可以自行了解:

    一、xmpp的概念

    http://my.oschina.net/cuitongliang/blog/194885 (寫得很詳細)

    二、xmpp的歷史

    以前叫jabber,聽起來好邪惡。。。

    三、xmpp工作原理

所有從一個客戶端到另一個客戶端的xmpp訊息都要通過xmpp伺服器。
    即:client--server--client

1.客戶端連線到伺服器
2.伺服器端利用本地目錄系統的證書對其認證
3.客戶端制定目標地址,讓伺服器端告知目標狀態
4.伺服器端對另一個客戶端進行查詢、連線並相互認證
5.相互認證後,兩個客戶端間即可進行互動

    如果再複雜點,要和其他通訊系統互動資訊,就需要配置xmpp閘道器。


    四、PC端的實現

有現成的spark,至於進一步的開發嘛,等我有空的。。。

相關推薦

xmpp開發IM即時通訊系列--

    本人近期研究即時通訊功能,社交元素現在已經滲透到各個領域,無論商城、遊戲、媒體類等app,為了增加使用者之間的交流,都已經開始加入即時通訊功能,可以說即時通訊在未來的手機商業應用領域是不可或缺

SpringBoot+Netty開發IM即時通訊系列

前言 最近專案的需求有IM通訊這個模組,經過與老大商量決定使用SpringBoot+Netty的方式構建。於是,在這個系列中記錄下過程中的學習歷程以及擼碼上線,以供日後參考。 如果文中有不當或錯誤請指出,虛心接受批評。 Netty 先來看下官方定義:

xmpp開發IM即時通訊系列--即時通訊伺服器搭建1資料庫搭建

    這次總結一下即時通訊伺服器的搭建,一般的後臺伺服器至少由兩部分組成,一部分是應用伺服器,另一部分是資料庫伺服器與檔案伺服器,應用伺服器主要用於部署負責業務處理的相關應用,資料庫伺服器主要用於部

SpringBoot+Netty開發IM即時通訊系列

上篇 “SpringBoot+Netty開發IM即時通訊系列(一)”介紹了Netty與NIO等基礎知識點,感興趣的可以去看下: https://blog.csdn.net/qq_26975307/article/details/85004424  本篇使用Netty+WebSo

Netty實戰 IM即時通訊系統IM系統簡介

## Netty實戰 IM即時通訊系統(一)IM系統簡介 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹 客戶

Netty實戰 IM即時通訊系統客戶端啟動流程

## Netty實戰 IM即時通訊系統(五)客戶端啟動流程 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹 客

Netty實戰 IM即時通訊系統服務端啟動流程

## Netty實戰 IM即時通訊系統(四)服務端啟動流程 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹 客

Netty實戰 IM即時通訊系統Netty環境配置

## Netty實戰 IM即時通訊系統(三)Netty環境配置 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹

Netty實戰 IM即時通訊系統Netty簡介

## Netty實戰 IM即時通訊系統(二)Netty簡介 零、 目錄 IM系統簡介 Netty 簡介 Netty 環境配置 服務端啟動流程 實戰: 客戶端和服務端雙向通訊 資料傳輸載體ByteBuf介紹 客

基於區域網的超簡易即時通訊軟體

  開博也那麼多天了,一直沒有放什麼上來,今天心血來潮,就放一個之前用C#寫的,基於區域網即時通訊的簡易版QQ吧。   首先呢,得了解,既然是能實現區域網的即時通訊,就必定是有伺服器和客戶端的,是基於C/S結構的。當時想的是為易於後期維護所以用了三層架構編寫。開發軟體用的是M

STM32開發筆記47:STM32F4+DP83848乙太網通訊指南系列:知識儲備

微控制器型號:STM32F407VGT 本章為系列指南第一章,主要是介紹一下專案思路,並且儘可能列出從零開始著手開發這個專案過程中,所需要理解的各類知識點,關於這些知識點,如果需要更詳細的介紹,請列為看官自行百度谷歌。 STM32F407簡介 STM32F407主頻168MHz,主頻

Python開發MapReduce系列WordCount Demo

logs 3-9 line counter ota python開發 home num brush  原創,轉發請註明出處。   MapReduce是hadoop這只大象的核心,Hadoop 中,數據處理核心就是 MapReduce 程序設計模型。一個Map/Reduc

尋找bug並消滅系列——記錄在Android開發所遇到的bug

ont 屬性 XML android oid content 事件監聽器 監聽 設置 之前使用了Android Studio的插件直接為button綁定了監聽器,並實現onClick方法(我的onClick方法無論點擊哪一個都是要實現setcontentview這個方法設置

vue 開發系列 vue 開發環境搭建

更新 AC .org 開發環境搭建 執行命令 taobao AR reg 開發技術 概要 目前前端開發技術越來越像後臺開發了,有一站式的解決方案。 1.JS包的依賴管理像MAVEN。 2.JS代碼編譯打包。 3.組件式的開發。 vue 是一個前端的一站式的前

高性能服務器開發基礎系列 主線程與工作線程的分工

c++ 服務器 服務器端為了能流暢處理多個客戶端鏈接,一般在某個線程A裏面accept新的客戶端連接並生成新連接的socket fd,然後將這些新連接的socketfd給另外開的數個工作線程B1、B2、B3、B4,這些工作線程處理這些新連接上的網絡IO事件(即收發數據),同時,還處理系統中的另外一些事

深圳區塊鏈交易系統開發,IM即時通訊app開發

屬性 所有 提高 區塊 一個 公有 即時通訊 控制 信任 深圳區塊鏈交易系統開發,IM即時通訊app開發 什麽是區塊鏈? 從技術上講,區塊鏈是區塊的鏈接,一個區塊是一組有序的交易。如果你不理解最後一句話,你可以把區塊鏈看作是一個擁有一些附加屬性的數據庫的一個子集。 我們要了

STM32F4+DP83848乙太網通訊指南系列:知識儲備

丁丁的部落格:https://www.hexcode.cn/article/show/stm32-ethernet1 2017-12-09 17:32:19 乙太網通訊   stm32 STM32F4+DP83848乙太網通訊指南系列(一):知識儲備

HTTP系列—— TCP/IP的分層管理及通訊傳輸

1. TCP/IP的分層管理 TCP/IP協議族按照層次分為以下幾層:應用層,傳輸層,網路層和資料鏈路層。 1.1 應用層 應用層決定了向用戶提供應用服務時的通訊活動;FTP協議(檔案傳輸協議),HTTP協議,DNS服務(域名解析服務)等均處於該層。 1.2 傳輸層 傳輸層提供處

音視訊開發系列

  人類的五官能夠直接感受聲音和影象,但計算機只能認識二進位制。在音視訊的開發過程中,我們必須將聲音和影象編碼為二進資料流,才能讓計算機識別,進而加工處理、傳輸和儲存;計算機上為人類服務的,儲存的音視訊資料被使用者獲取後,需要重新解碼為人類能夠直接感受的聲音、影象。   大連哪個醫院看婦

springboot視訊教程系列SpringBoot開發初體驗-王勇-專題視訊課程

springboot視訊教程系列(一)SpringBoot開發初體驗—79人已學習 課程介紹         本章主要是帶領大家實際動手寫一個SpringBoot程式,並對該程式進行分析,通過該程式