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()
這段**的功能:使用本人賬戶
連線伺服器(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是乙個開放的可擴充套件標...