微软实时通信API多客户端通信实战(1)

洛城歌姬

洛城歌姬

2016-02-19 12:59

下面是个简单易学的微软实时通信API多客户端通信实战(1)教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

摘要:在前一篇文章《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 )
{
... .

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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

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

  启用和检测出席信息

  使用出席信息服务,用户可以跟踪联系人的出席状态、将此状态通知给联系人、通过注册服务器(维护联系人的当前位置信息)调用好友。位置可以是计算机或电话,将来还可以是移动电话、寻呼机或手持设备。

  下图显示了在 SIP 服务器中注册客户端并启用出席信息服务的高级步骤。

微软实时通信API多客户端通信实战(1)
图 2:启用配置文件和出席信息服务的步骤

展开更多 50%)
分享

猜你喜欢

微软实时通信API多客户端通信实战(1)

编程语言 网络编程
微软实时通信API多客户端通信实战(1)

微软实时通信API多客户端通信实战(2)

编程语言 网络编程
微软实时通信API多客户端通信实战(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

微软实时通信API多客户端通信实战(3)

编程语言 网络编程
微软实时通信API多客户端通信实战(3)

Android 进程间通信实现原理分析

编程语言 网络编程
Android 进程间通信实现原理分析

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用Oracle实现实时通信

电脑网络
使用Oracle实现实时通信

Zune 客户端

平面设计 标志设计 UI设计 VI设计
Zune 客户端

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

怎么查询win7系统安装时间

怎么查询win7系统安装时间

Debian环境下安装Java环境

Debian环境下安装Java环境
下拉加载更多内容 ↓