程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 微軟實時通信API多客戶端通信實戰(1)

微軟實時通信API多客戶端通信實戰(1)

編輯:vc教程

摘要:在前一篇文章《Microsoft實時通信API入門》中,我們介紹了使用實時通信 (RTC) 客戶端 API 將某些功能(例如音頻/視頻會議、即時消息和應用程序共享)集成到應用程序中是多麼簡單直接。

  本文將介紹使用 RTC 客戶端API 添加出席信息、配置文件和好友列表等功能來創建社區的簡單性。您將學習使用Windows XP 應用程序來實現此功能的步驟。

  您需要安裝:

  Visual Studio 6.0 SP5
  Microsoft Platform SDK
  SIP Server 或 Windows .Net Server Beta 3

  會話啟動協議服務器

  要將出席信息、配置文件和好友列表集成到應用程序中,需要使用 SIP 服務器或 Windows .Net Server Beta 3。需要出席信息(例如啟用好友列表功能)時,要求使用 SIP 注冊服務器。用戶可以在服務器上注冊其出席信息,並通過此服務檢索其他人的出席信息。

  服務器使用會話啟動協議(SIP)及其相關協議 SIMPLE 作為底層通信協議。SIP 為多模式通信提供了出色的支持。SIP 和 SIMPLE 不僅是文本消息共享協議,而且可以管理聲音、視頻、應用程序共享等。

  會話啟動協議

  SIP 協議用於在 IP 網絡中啟動會話並注冊出席信息。會話可以是 PC 到 PC 的簡單雙向通信,也可以是協作的多媒體會議會話。SIP 是一種 Internet 工程任務組 (IETF) 信號處理協議,用於建立、操作和銷毀會話。SIP 的主要用途是幫助會話啟動者向各地可能的會話參加者發出邀請。SIP 被描述為“簡單、可擴展”的 IP 電話信號處理協議。

  初始化出席信息和好友列表通知

  要接收出席信息、好友列表和配置文件的新&&事件通知,請設置以下&&事件過濾器掩碼,以便應用程序從 RTC 層接收&&事件通知。這些&&事件掩碼是第一個示例應用程序中設置的&&事件掩碼的補充。

#define RTCEF_REGISTRATION_STATE_CHANGE 0x00000002
#define RTCEF_BUDDY 0x00000100
#define RTCEF_WATCHER 0x00000200
#define RTCEF_PROFILE 0x00000400

  注冊所有&&事件的一種簡單方法是使用 RTCEF_ALL 宏通知 RTC 層向應用程序發送所有&&事件。

  long lEventMask = RTCEF_ALL;

處理 RTC &&事件

  以下代碼段顯示了使用用戶配置文件注冊到 SIP 服務器、發送和接收出席信息和好友列表&&事件時需要處理的其他&&事件。接收到每個&&事件後,&&事件過濾器方法將使用適當的 RTC &&接口處理收到的&&事件。

HRESULT CAVDConfDlg::OnRTCEvent(UINT message, WPARAM wParam, LPARAM lParam)
{
IDispatch * pDisp = (IDispatch *)lParam;
RTC_EVENT enEvent = (RTC_EVENT)wParam;
HRESULT hr;

// 基於 RTC_EVENT 類型,查詢
// 適當的&&事件&&接口並調用輔助
// 方法來處理&&事件

switch ( wParam )
{
... .

case RTCE_REGISTRATION_STATE_CHANGE:
{
IRTCRegistrationStateChangeEvent * pEvent = NULL;
// 獲取與當前會話關聯的&&事件句柄。
hr = pDisp->QueryInterface( IID_IRTCSessionStateChangeEvent,
(void **)&pEvent );

if (SUCCEEDED(hr))
{
OnRTCSessionStateChangeEvent(pEvent);
SAFE_RELEASE(pEvent);
}
}
break;

case RTCE_BUDDY:
{
IRTCBuddyEvent * pEvent = NULL;
hr = pDisp->QueryInterface( IID_IRTCBuddyEvent,
(void **)&pEvent );

if (SUCCEEDED(hr))
{
OnRTCBuddyEvent(pEvent);
SAFE_RELEASE(pEvent);
}
}
break;

case RTCE_WATCHER:
{
IRTCWatcherEvent * pEvent = NULL;
hr = pDisp->QueryInterface( IID_IRTCWatcherEvent,
(void **)&pEvent );

if (SUCCEEDED(hr))
{
OnRTCWatcherEvent(pEvent);
SAFE_RELEASE(pEvent);
} }
break;
}
... .
}

  啟用和檢測出席信息

  使用出席信息服務,用戶可以跟蹤聯系人的出席狀態、將此狀態通知給聯系人、通過注冊服務器(維護聯系人的當前位置信息)調用好友。位置可以是計算機或電話,將來還可以是移動電話、尋呼機或手持設備。

  下圖顯示了在 SIP 服務器中注冊客戶端並啟用出席信息服務的高級步驟。


圖 2:啟用配置文件和出席信息服務的步驟

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