whatsapp群發(fā)協(xié)議分析

  

  

今天一米智能WhatsApp群發(fā)軟件來給大家說一說whatsapp群發(fā)協(xié)議分析。


whatsapp群發(fā)協(xié)議分析


whatsapp主要采用XMPP協(xié)議來做數(shù)據(jù)包組織。那么從XMPP的幾個要點(diǎn)來分析whatsapp的協(xié)議。


1、出席(presence)


出席通知其他實體的網(wǎng)絡(luò)可用性,并且使你能夠知道其他實體是否在線和可用于通訊。它是一個在互聯(lián)網(wǎng)上溝通和合作的催化劑,因為人們更容易與你交流,如果他們知道你是否在線。只有通過你授權(quán)的人才能看到你是否在線。這個授權(quán)被稱為出席訂閱。當(dāng)你在線時,你向你的服務(wù)器宣告你的出席,然后服務(wù)器將你在線通知告訴你的聯(lián)系人,并且獲得他們的當(dāng)前出席顯示在你的客戶端界面上。

那么在whatsapp上如何實現(xiàn)這些的了?

自己出席:

訂閱用戶請求:

訂閱用戶響應(yīng):

用戶上線通知:


2、查詢(iq)


查詢(IQ)節(jié)提供了一種用于請求-應(yīng)答交互和簡單工作流的結(jié)構(gòu).

和節(jié)不同,一個IQ節(jié)能包含僅有一個有效載荷,用于定義處理的請求或接收人采用的行為。

發(fā)送IQ節(jié)的實體必須總是接收一個回復(fù)(通常由目的接收者或接受者的服務(wù)器產(chǎn)生)。

請求和應(yīng)答通過使用id屬性跟蹤,id屬性由請求實體生成,并被包含在應(yīng)答的實體中

信息/查詢type

get

請求實體信息,例如請求注冊一個賬戶(類似于HTTP GET)。

set

請求實體提供一些信息或作出一個請求(類似于HTTP POST或PUT)。

result

應(yīng)答實體返回get操作的結(jié)果(例如一個實體必須提供信息用來注冊賬戶),或者確認(rèn)一個set請求(類似于一個HTTP200狀態(tài)碼)。

error

應(yīng)答實體或一個中間實體,例如XMPP服務(wù)器,通知請求實體它不能處理get或set請求(例如,因為請求的格式不正確,請求實體無權(quán)執(zhí)行該操作等)。早期在HTTP中使用的數(shù)字錯誤代碼已被可擴(kuò)展錯誤條件的XML元素取代。


3、信息(ib)


信息(IB)節(jié)提供了服務(wù)器主動推送一些配置信息,客戶端無需回復(fù)。

在whatsapp上的一些實際例子。

通知離線消息數(shù)量

通知路由信息

【4】08080802

【2】6662


4、消息


節(jié)是使用基本的“push”方法從一個地方到另一個地方得到消息,消息是不可告知的,它是一種“fire-and-forget”的機(jī)制從一個地方到另一個地方快速獲取信息。

消息的type

normal:單個的消息,對應(yīng)的回應(yīng)可能會或者可能不會很快到來。

chat:在兩個實體間店實時對話中交換

groupchat:多用戶聊天室中交換

headline:發(fā)送警告和通告,并不期望有回應(yīng)

error:對先前發(fā)送消息發(fā)生錯誤,實體檢測這個問題將返回一個類型error的消息。

消息的to:預(yù)期收件人的JabberID

消息的from:發(fā)送者的JabberID,from地址不由發(fā)送客戶端提供,而是由發(fā)送者的服務(wù)器添加郵戳,以避免地址欺騙。

消息也包含有載荷元素。核心XMPP規(guī)格定義了一些非常基本的有效載荷,例如和,被用于人對人的聊天信息,消息(和其他類的節(jié))可以包含在核心XMPP規(guī)格中沒有定義的有效載荷

  
相關(guān)資訊

推薦軟件