首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

Microsoft RTC API 多用戶端通訊實戰 (一):架構介紹與事件初始化

     編輯:VC 教學

前言

本系列介紹使用 RTC Client API 整合音視訊會議、即時訊息、應用程式共享、Presence 好友清單等功能。開發環境:Visual Studio 6.0 SP5、Platform SDK、SIP Server 或 Windows .NET Server Beta 3。

SIP 伺服器與 SIMPLE 協定

  • SIP (Session Initiation Protocol):IETF 標準訊號協定,建立/操作/銷毀多媒體會話。
  • SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions):擴展 SIP 支援 Presence 與即時訊息。
  • SIP 不僅處理文字,更管理語音、視訊、應用程式共享等多模態通訊。

事件過濾器初始化

接收 RTC 事件需設定事件遮罩:

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

// 或直接使用全部事件
long lEventMask = RTCEF_ALL;

事件處理架構

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

    switch (wParam) {
        case RTCE_REGISTRATION_STATE_CHANGE: {
            IRTCRegistrationStateChangeEvent* pEvent = NULL;
            hr = pDisp->QueryInterface(IID_IRTCRegistrationStateChangeEvent, (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;
        // ... 其他事件
    }
    return S_OK;
}

Presence 啟用高層流程

[建立 XML 佈建] → [CreateProfile] → [EnableProfile] → [SIP 註冊成功] → [Presence 就緒] → [好友清單/觀察者運作]

總結

RTC API 提供豐富事件模型 (註冊狀態、好友、觀察者、佈建等),配合 SIP/SIMPLE 協定實現企業級即時通訊。正確設定事件遮罩與處理分派機制,是整合 RTC 功能的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved