Windows 即時通訊技術的應用

來源:互聯網
上載者:User

Windows 即時通訊技術的應用

原著:Tom Fout
翻譯:孟謹

原文出處:MSDN Library January 15, 2002


摘要
  Windows XP RTC 的用戶端 API 使得開發人員能夠在自己的應用程式中實現即時通訊。本文介紹了 RTC 技術和應用這一技術所必須的組件。


目錄

緒論
具有 RTC 功能的應用程式
RTC 程式的應用場合
RTC用戶端應用程式介面
RTC對象
設定檔和設定
用戶端事件
RTC介面
更多資訊


緒論
  今天,我們可以採取很多方法和我們的夥伴、客戶、支援者、家庭和朋友進行交流。E-mail已經成為一個普遍深入的交流方式,但是它的即時性不強。電話被證明是一種好的交流方式並且具有即時性,但是它也有局限性,比如只有聲音的交流,並且它缺乏一種機制來使我們知道是否我們交流的另一方已經準備好接聽我們的電話。

走進即時通訊
  Real-Time Communications (RTC)提供了豐富的與現場資訊相結合的通訊和協作特徵,使你能夠知道在何時何地找到你的連絡人。RTC的許多特徵以另外的形式或者在其他的應用中有所體現,但是這些特徵從未被結合為一個單獨的實現。
  例如,Instant Messaging (IM)立即訊息是發展最快的Internet通訊機制之一,因為它實現簡單並且效率高。IM具有即時性,而且具有現場能力,使你知道何時能找到你的連絡人。但是它不具備另外一些特徵,例如音頻和視頻會議以及線上合作等。
  Microsoft Windows XP 在 Microsoft Windows Messenger 中包含了所有的即時通訊功能。Windows Messenger使你能與你的客戶和同事通過使用文本、音頻(語音電話可以在PC到PC、PC到電話、電話到電話之間建立)、視頻、共用白板和應用程式的方式進行交流。你可以建立一個連絡人清單,通過現場資訊得知你的連絡人何時線上何時可以聯絡得到。並且,這些能力並非只限於Windows Messenger,通過使用RTC用戶端API可用來豐富其他的應用程式。

具有 RTC 功能的應用程式
  Windows Messenger 用戶端利用 Windows XP 的 RTC 用戶端組件。這一用戶端在一個單獨的應用程式中體現了所有 RTC 能力。然而,在許多情況下,需要輔助程式進行通訊頗顯累贅。
  RTC 是基於 Internet 技術和協議標準的,這使得其它裝置和應用程式能使用這一技術與 Windows Messenger 進行溝通。
  Windows XP RTC 用戶端實現還提供了一個開放的應用程式介面,因此,基於 Windows 平台的應用程式可增加這些 RTC 功能。例如,一個基於 Web 的購買程式可包含一個即時求助按鈕。點擊該按鈕之後,應用程式就會開啟一個在客戶與技術支援人員之間建立的 IM 會話。

RTC 程式的應用場合
  Windows Messenger 在一個單獨的應用中包含了 RTC 的許多功能。這一解決方案有許多用處並且在許多場合可能是最好的解決方案。很多情況下,在你的應用程式中包含這些功能會使事情變得更容易,更完善,更棒。
  下面是一些將 RTC 功能包含進應用程式的例子。使用這一技術的其它例子還有很多。

客戶關係管理-——案頭遠程協助
  Jim 想通過線上書店購買一本書,但是他的信用卡好像有點問題。通過點擊網頁上的一個按鈕,他立即與 Amazon(書店的名字)的銷售代表建立了 IM 會話。通過 IM 和應用程式共用,該銷售代表發現並解決了問題。這本書也被定購了。若沒有這種即時協助的能力,Jim 很可能就放棄了這次購買,這筆生意也就丟掉了。

知識管理--團隊和項目的通訊網站
  產品研發團隊的網站有幾個責任功能區(例如,用戶端和伺服器團隊)。通過導航到相關的責任地區,使用者能夠找到一個列出了團隊所有成員以及他們在場與否的面板。通過點擊相關成員的連絡方式,使用者能夠立即與該團隊的那個成員通訊。這種即時出席資訊減少了潛在的 E-mail 和電話數量,也減少了失敗。

電子商務--夥伴/供應商的通訊
  一個大型製造廠商有很多供應商,這些供應商串連到不同的外部網路中。不採用寄送電子郵件等方式來討論訂單,他們可以使用 RTC 的用戶端 API 開發一個應用程式,用該程式傳達特定資訊。例如,製造廠商可以使用 IM 發一個 1000 個零組件訂單,並使用 IM 能夠立即確認訂單已經傳送到了供應商一方並且進入了供應商的系統。在該訂單的處理過程中,狀態資訊可以根據需要被自動擷取。

系統警告--發送至使用者案頭 PC 機或者行動裝置
  某個公司已經開發了一個 E-mail 伺服器。為了使支援人員的電話能減少,他們開發了一個小型應用程式,這個程式能通知某一特定 E-mail 伺服器的所有使用者(使用 IM)該伺服器將要暫停以便進行例行的維護保養。即使 E-mail 伺服器已經不線上,使用者也能收到該訊息,使得技術支援人員得以清靜。

遊戲
  大多數的多人遊戲都包括了和對手以及同伴聊天的機制。但是你能想象在你將要結束你的朋友的遊戲的時候看到他的臉嗎?

其它用處
  在應用程式中 RTC 的功能還有很多其它潛在的用處。通過將 RTC 整合到現存的商業軟體中可以實現即時通訊和協作,這將提高生產力。使很多行業和部門,包括金融、製造業、醫學保健和人力資源等等從中受益。

RTC用戶端應用程式介面
  為了獲得與在 Windows Messenger 中實現的同樣的 RTC 用戶端功能,Windows XP 通過 RTC 用戶端 API 開放了 RTC。這些 API 使應用程式能夠建立從 PC-PC, PC-phone 或者 phone-phone 的呼叫。應用程式能夠增添在 Internet 或者 Intranet 上建立 IM 會話的功能。在 PC 機使用者之間,語音和視訊通話都可以建立。應用程式能獲得並顯示一系列連絡人的現場資訊。通過增加應用程式和白板的共用的功能,可以加強雙方的合作。
  誰可以使用這些介面呢?內部的開發團體可以使用這些 API 增加內部工具的功能。軟體公司可以使用 RTC API 將 RTC 功能整合到自己的應用程式中,或者建立用於出售的專門軟體,或者用來滿足客戶的需要。電話語音提供者可為住宅或者公司使用者建立應用程式。想要出售 RTC 服務的電信提供者可通過使用這些 APIs 為他們的客戶建立用戶端應用程式。可使用 C++ 和 Microsoft Visual Basic建立應用程式。

RTC 對象
  RTC 的基本編碼模型是 COM。在 RTC 中用於通訊的對象分別是 Client、Session 對象和Participant 對象。


圖一 RTC用戶端COM對象

  • Client 對象:Client 對象實現了 IRTCClient 介面,並且為會話建立了允許的類型和參數,比如首選裝置、媒體類型和位元速率以及其它的媒體屬性,比如音量和回波抵消。這個介面也被用於建立會話對象。
  • Session 對象:Session 對象通過 IRTCClient::CreateSession 方法建立,被用於管理一個會話。這個對象實現了 IRTCSession 介面,這一介面用於初始化、回複或者終止一個會議,增加參與者和其它的會議管理。這個對象支援 IM 和其它的會話類型。Session 對象可用於,例如,建立一個與你的朋友的IM會議,或者開始一個與 Web 網站代表的音訊撥號。
  • Participant 對象:Participant 對象由 IRTCSession::AddParticipant 方法建立,包含了與會議參與者有關的所有方法。它包括了參與者的姓名和目前狀態。IRTCParticipant 介面由該對象實現。

  出席資訊由 Buddy 和 Watcher 對象管理。這些對象提供介面,用於管理擷取與連絡人和出席成員有關的資訊。

  • Buddy 對象:Buddy 對象用於管理、設定和擷取與連絡人相關的資訊。當通過 IRTCClientPresence::AddBuddy 方法添加 某個連絡人時(IRTCClientPresence 由 Client 對象實現),Buddy 對象便被建立。諸如連絡人姓名和狀態這樣的資訊可由 IRTCBuddy 介面獲得。
  • Watcher 對象:Watcher 用於擷取與某個看守人有關的狀態(watcher)資訊, 看守人就是將你添加為連絡人的某人。這個對象也可使用 AddWatcher 方法通過 IRTCClientPresence 介面添加。Watcher 的狀態和其 它資訊使用在 IRTCWatcher 介面中實現的方法獲得。

設定檔和設定
  設定檔對象用於維護用戶端的設定。一個設定檔對象包括了用戶端的顯示、使用者姓名、支援的會議類型和用戶端 RTC 提供者的資訊。通過這一資訊可以獲得網路資源情況,並且能用於設定呼叫或者處理出席資訊。 設定檔對象由 IRTCClientProvisioning 介面(在 Client 對象中實現)建立。
  用戶端建立了一個設定檔來儲存資訊,用於客戶進入網路上的服務。一個用戶端應用程式必須建立一個 XML 文檔來儲存用戶端的配置。設定檔可 被用於單獨設定不同的提供者、Proxy 伺服器或者網關給用戶端所提供的不同的服務類型。
  初始化 RTC 之後,用戶端應用程式建立並且啟用一個設定檔。

用戶端事件
  RTC 的用戶端 API 允許通過不同的用戶端事件通知應用程式,包括訊息事件、工作階段狀態變化、參與者狀態變化、出席狀態變化、裝置變化和網路品質變化等。在具體實現中,應用程式通過 IRTCClien 介面 建立一個事件過濾器(以屏蔽碼形式),並且在應用程式事件接收對象中註冊一個 IRTCEventNotification 事件介面。當感興趣的事件發生時,事件類型和對象 將被提供給用戶端的Event 方法進行處理。

RTC 介面
  上文所討論了 RTC 對象實現的幾個介面。利用這些介面可添加期望的 RTC 功能到某個應用程式中。這些 RTC 介面及其相關方法在 SDK 中有詳細的文檔描述。

更多資訊

  • 要想獲得關於 XP 的最新資訊,請參閱 Windows XP 首頁。
  • 要想獲得關於 RTC 用戶端 API 的詳細資料,請參考 SDK 裡的 Real-Time Communications (RTC) Client documentation。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.