2012-02-16 98 views
5

Libjingle看起來很強大,並附帶了一堆示例程序和擴展。但是我一直無法使用它,而我在IRC上討論過的人告訴我他們發現API非常混亂,我寧願使用別的東西。libjingle的教程?

但我願意再試一次。有沒有人有一個很好的教程?或者不同課程的一個很好的介紹,開始? (Google的官方文檔不是)。

回答

1

我剛剛構建了libjingle。它不是直接打造的,而是需要一些補丁(在libjingle站點上記錄)。而我即將進行端到端的測試。我很高興分享我學習的東西。

+0

可以爲libjingle文檔和構建它的步驟提供信息。提前致謝。 – 2017-07-14 05:44:11

1

如果你有構建問題,我爲你感到難過,兒子。因爲認真,libjingle是一個婊子得到編譯。如果你可以將它編譯成你正在構建的任何平臺,那麼你就有90%的選擇。這真的要取決於你坐在一個週末,並逐一解決編譯器問題。 Xcode的兩個快速指針:刪除(但不刪除)所有特定於Windows的狗屎,並刪除所有具有主要方法的文件(單元測​​試和主幹)。

一旦你建立了它,API實際上是相當直截了當。典型的libjingle應用程序的體系結構具有多個運行的XMPP任務。一些任務是輸出任務,將發出節: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/friendinvitesendtask.cc (看發送方法) 這應該是非常直截了當的。它構建了一個XML節,並將它排隊等待XMPPclient處理。

也有處理的節輸入任務: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/mucinviterecvtask.cc (看HandleStanza法)

雖然這個特定的HandleStanza方法是狗屎節目,它的要點是,這種方法被稱爲所有XMPP消息。你首先需要確定如果你關心與否:

if (stanza->Name() != QN_MESSAGE) return false; 

然後你通過XML走,拉出你需要關心這個的信息和你的應用程序的信號部分。

當然,還有一些隧道API,它實際上比較複雜,並不在StackOverflow答案的範圍內。如果有足夠的興趣,我可以進入這個領域,但我建議您首先至少設置libjingle並傳遞一些XMPP消息,然後再着手設置隧道。

關於使用libjingle的最後一個指針:非常小心線程。