1. 程式人生 > >編寫基於libjingle的應用程式的基本步驟

編寫基於libjingle的應用程式的基本步驟

        Libjingle是Google提供的C++元件集,它為點對點通訊與語音呼叫功能提供互動操作性。元件包包括了建立網路連線(穿越NAT與防火牆裝置,中繼伺服器和代理),協商會話細節(編解碼器,檔案格式等),以及資料的交換。還提供了一些輔助的工具例如XML解析以及網路代理的處理等。使用libjingle可以實現如下應用:

  • 多使用者語音聊天應用
  • 多使用者視訊會議應用
  • 多使用者音樂流媒體應用
  • 點對點檔案共享

        編寫一個基於libjingle的應用程式,需要按照如下的步驟進行:

        1.  為自己的應用程式建立訊號執行緒。

        這個執行緒被許多元件使用,也是libjingle內部訊息系統的關鍵。這個執行緒必須在例項SessionManager

之前或執行任何Task物件(例如XmppPump)之前建立並啟動。需要建立PhysicalSocketServer物件,將其傳到一個新的使用這個socket server的執行緒例項,然後把新的執行緒傳到全域性的靜態ThreadManager類。

        2. 在伺服器中註冊。

        XMPP伺服器起到中央接觸點的作用,註冊到XMPP伺服器用於找到其他的電腦。為了便於註冊,必須例項化XMPP工作管理員和XmppClient物件。

        3.  傳送並請求聯機狀態。

        你需要找到誰線上並請求他們的JID以便於向其他電腦請求連線。

        4. 建立會話管理通道。

        用於監聽和響應連線請求,或用於發起你自己的請求。

        5. 向外傳送連線請求,或者接收連線請求。

        為了偵聽傳入的連線,必須註冊接收來自SessionManager會話連線的通知,註冊會話狀態的變化,傳送連線請求時建立的任何自定義的會話描述,並執行其他管理任務。其中的許多工由會話邏輯與管理元件中的封裝類完成。

相關推薦

編寫基於libjingle應用程式基本步驟

        Libjingle是Google提供的C++元件集,它為點對點通訊與語音呼叫功能提供互動操作性。元件包包括了建立網路連線(穿越NAT與防火牆裝置,中繼伺服器和代理),協商會話細節(編解碼器,檔案格式等),以及資料的交換。還提供了一些輔助的工具例如XML解析以

用MyEclipse編寫第一個Java應用程式步驟

(1)建立Java專案:“FileàNewàProjectàJava Project” (2)建立Java源程式:“FileàNewàOtheràClass” (3)編譯Java源程式:“ProjectàBuild Project” (4)執行Java程式:使用“Runà

編寫一個Java應用程式,當用戶在輸入對話方塊中輸入兩個日期後(日期格式為YYYYMMDD,如1999年1月12日應輸入為19990112),程式將判斷兩個日期的先後順序,以及兩個日期之間的間隔天數(例

編寫一個Java應用程式,當用戶在輸入對話方塊中輸入兩個日期後(日期格式為YYYYMMDD, 如1999年1月12日應輸入為19990112), 程式將判斷兩個日期的先後順序, 以及兩個日期之間的間隔天數(例如1999年1月1日和1999年1月2日之間的間隔是1天。  

8.3 編寫健壯的應用程式-分離計算部分

-module(c_shell). -export([start/0, eval/2]). start() -> process_flag(trap_exit, true), go(). go() -> eval(io:parse_exprs('-&g

8.1 編寫健壯的應用程式-防範錯誤資料

server(AnalTable) -> receive {From, {analyse,Seq}} -> case catch lookup(Seq, AnalTable) of

編寫一個Java 應用程式,計算兩個大整數的和、差、積和商,並計算一個大整數的因 子個數(因子中不包括1 和大整數本身)。

1 package ex6_2; 2 import java.math.BigInteger; 3 4 public class BigintegerExample { 5 public static void main(String[] args) { 6

編寫一個Java 應用程式,使用者從輸入對話方塊輸入了兩個日期,程式將判斷兩個日期的 大小關係,以及兩個日期之間的間隔天數。

1 package ex6_1; 2 3 import java.sql.Date; 4 import java.util.Calendar; 5 6 import javax.swing.JOptionPane; 7 8 public class DateExample { 9

3.1 用Android Studio編寫第一個應用程式Hello World

1. 從上一篇的引導介面或者從File -> New -> New Project新建一個工程: Application name:需要填寫的工程名稱,我們這裡填寫“HelloWorld”,即第一個安卓工程。 Company Do

8.5 編寫健壯的應用程式-討論

loop(Processes) -> receive {From, {new_proc, Mod, Func, Args}} -> Id = spawn_link(Mod, Func, Args), From ! {

8.2 編寫健壯的應用程式-健壯的服務程序

free(Free, Allocated, From, R) -> case lists:member({R, From}, Allocated) of true -> From ! {resource_alloc, yes}

Linux opendds 應用程式構建步驟

1  cd  xxx/OpenDDS-3.13/build/target     source setenv.sh 2  仿照DevGuideExamples 建立工程檔案        &nb

applet應用程式開發步驟講解

1)將Java原始檔編譯成類檔案。 2)建立一個HTML檔案,告訴瀏覽器首先載入哪個類檔案以及如何設定applet的大小。 <applet code="applet/*.class" wi

用WindowBuilder編寫SWT 桌面應用程式

WindowBuilder是一款基於Eclipse平臺的雙向Java的GUI設計外掛式的軟體。它具備SWT/JFACE開發、Swing開發及GWT 開發三大功能,是一款不可多得的Java體系中的WYSIWYG工具。1 安裝WindowBuilder 可以從http://dow

C#編寫一個控制檯應用程式,求1000之內的所有“完數”

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

在叢集上執行python編寫的spark應用程式(過程記錄)

啟動hadoop[email protected]:/usr/local/hadoop-2.7.5/sbin#./start-all.sh This script is Deprecated. Instead use start-dfs.shand start-ya

交叉編譯能在arm平臺上執行的Qt應用程式步驟

        我們的電腦一般來說,現在主流的還是X86平臺(當然,隨著64位機的普及,相信以後格局會變化,暫不討論)。對於Qt應用程式來說,我們在PC機上開發的時候,因為本身我們的開發軟體Qt creator是執行在X86平臺上的,而我們編寫的應用程式也預設是在PC機上執

編寫高效能Web 應用程式的 10 個技巧

  本文討論 • 常見 ASP.NET 效能難點 •

猜數字遊戲。編寫一個Java應用程式,實現功能:

import javax.swing.JOptionPane;  public class GuessNumber  {            public static void main (String args[ ])       {            

在Visual Studio下編寫64位應用程式應注意什麼

64位應用程式的執行效率要比32位應用程式高的多。隨著64位作業系統的逐漸普及,64位應用程式也必將隨之風靡。在Visual Studio中也已經支援了64位應用程式的開發。筆者在這裡就將其開發要點做一下總結。權當作拋磚引玉,跟大家切磋一下。   一、確定在64位作業系統