XMPP通訊過程 簡單例項

2021-06-12 18:24:49 字數 1255 閱讀 8683

xmpppy庫是採用python編寫的xmpp協議的實現,它是jabberpy專案的替代方案,後者已停止維護。採用該庫並結合python程式語言的特性,可以快速的實現基於xmpp協議的應用,如即時聊天系統。之後在介紹xmpp協議過程中,都將採用該庫編寫例項,因此這裡不做詳細介紹,之後會詳細的介紹xmpppy專案,並會對其原始碼進行分析,以便了解xmpp協議的工作原理或工作方式。

gtalk(google talk)是google公司於2023年8月推出的一款ip**和即時通訊服務,它採用了xmpp協議,並採用xmpp擴充套件協議jingle實現voip功能。google提供了gtalk客戶端應用,但是其服務是面向所有基於xmpp協議的實現,因此我們也可以通過xmpp協議連線gtalk服務。

另外,登入gtalk需要使用gmail賬戶,並且伺服器位址是talk.google.com,埠為5223。

如下python**實現簡單的xmpp通訊過程:

# -*- codeing:utf-8 -*-

import xmpp

username = '[email protected]'

password = '***********'

to = '[email protected]'

msg = 'hi, zhang san.'

def main():

client = xmpp.client('gmail.com')

client.connect(server = ('talk.google.com', 5223))

client.auth(username, password, 'botty')

client.sendinitpresence()

message = xmpp.message(to, msg, typ = 'chat')

client.send(message)

if __name__=='__main__':

main()

這段**的功能:使用本人賬戶

[email protected]

連線伺服器(talk.google.com, 5223),然後進行驗證,在進行初始化出席狀態,最後傳送一條訊息給[email protected]

另外,**執行結果會輸入很多日誌資訊,因為xmpppy在很多地方還提供了debug引數,預設是要輸出很多日誌。

本例項非常簡短,主要演示使用xmpp進行通訊的過程,當然要實現完整的即時聊天系統還需要很多更加複雜的工作,之後會慢慢涉及。

XMPP簡單介紹

xmpp簡單介紹 一 即時通訊簡單介紹 1 簡單說明 有許多的im系統,如aol im yahoo im msn以及qq,它們最大的區別在於各自通訊協議的實現,所以即時通訊技術的核心在於它的傳輸協議 業界經過多次努力,試圖統一各大主要im 商的標準 aol yahoo 及 microsoft 但無一...

XMPP之流協商過程

由於接收端是作為其所服務域的守護者,它會對連線來的客戶端提出一些條件。至少,在接收端在接收請求端傳送來的xml節點前,需要對請求方進行身份驗證。然而,接收方也可能要考慮一些其他比身份驗證更有強制協商性的條件,如採用tls加密通訊。當然接收方會通知請求方,提出自己的條件,這個通知是採用 流特性 的方式...

xmpp即時通訊詳解

摘要 此文件定義了可擴充套件訊息出席協議 xmpp 的核心特性 協議使用xml元素在任意兩個網路端點間近實時的交換結構化資訊。當xmpp為交換xml資料提供一般化,可擴充套件的框架時,它主要用於建立滿足rfc2779的即時訊息與出席應用的需求。1 介紹 1.1 概要 xmpp是乙個開放的可擴充套件標...