程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> Windows實時通信技術的應用

Windows實時通信技術的應用

編輯:關於VC++

摘要

Windows XP RTC 的客戶端 API 使得開發人員能夠在自己的應用程序中實現實時通信。本文介紹了 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 文檔來保存客戶端的配置。配置文件可 被用於單獨設置不同的提供者、代理服務器或者網關給客戶端所提供的不同的服務類型。

初始化 RTC 之後,客戶端應用程序創建並且激活一個配置文件。

客戶端事件

RTC 的客戶端 API 允許通過不同的客戶端事件通知應用程序,包括消息事件、會話狀態變化、參與者狀態變化、出席狀態變化、設備變化和網絡質量變化等。在具體實現中,應用程序通過 IRTCClien 接口 建立一個事件過濾器(以屏蔽碼形式),並且在應用程序事件接收對象中注冊一個 IRTCEventNotification 事件接口。當感興趣的事件發生時,事件類型和對象 將被提供給客戶端的Event 方法進行處理。

RTC 接口

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved