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

2016-02-19 12:59 9 1 收藏

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

【 tulaoshi.com - 编程语言 】

摘要:在前一篇文章《Microsoft实时通信API入门》中,我们介绍了使用实时通信 (RTC) 客户端 API 将某些功能(例如音频/视频会议、即时消息和应用程序共享)集成到应用程序中是多么简单直接。

  本文将介绍使用 RTC 客户端API 添加出席信息、配置文件和好友列表等功能来创建社区的简单性。您将学习使用Windows XP 应用程序来实现此功能的步骤。

  您需要安装:

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

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

  会话启动协议服务器

  要将出席信息、配置文件和好友列表集成到应用程序中,需要使用 SIP 服务器或 Windows .NET Server Beta 3。需要出席信息(例如启用好友列表功能)时,要求使用 SIP 注册服务器。用户可以在服务器上注册其出席信息,并通过此服务检索其他人的出席信息。

  服务器使用会话启动协议(SIP)及其相关协议 SIMPLE 作为底层通信协议。SIP 为多模式通信提供了出色的支持。SIP 和 SIMPLE 不仅是文本消息共享协议,而且可以管理声音、视频、应用程序共享等。

  会话启动协议

  SIP 协议用于在 IP 网络中启动会话并注册出席信息。会话可以是 PC 到 PC 的简单双向通信,也可以是协作的多媒体会议会话。SIP 是一种 Internet 工程任务组 (IETF) 信号处理协议,用于建立、操作和销毁会话。SIP 的主要用途是帮助会话启动者向各地可能的会话参加者发出邀请。SIP 被描述为“简单、可扩展”的 IP 电话信号处理协议。

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

  要接收出席信息、好友列表和配置文件的新&&事件通知,请设置以下&&事件过滤器掩码,以便应用程序从 RTC 层接收&&事件通知。这些&&事件掩码是第一个示例应用程序中设置的&&事件掩码的补充。

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

#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 服务器中注册客户端并启用出席信息服务的高级步骤。

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

来源:http://www.tulaoshi.com/n/20160219/1602678.html

延伸阅读
//客户端对用户输入数据校验 //如果输入的内容不满足,则不提交,并且焦点自动跳到该位置。 //比发送以后在服务器端校验数据要好用的多! 脚本代码: <script language="JavaScript" <!-- function Juge(theForm) { if (theForm.title.value == "") { alert("请输入标题!"); theForm.title.focus(); return (false); } if ...
前段时间发了个 ZUNE的不清晰的图,这次终于截到了清晰的大图,赶紧放上来给大家分享。
标签: ASP
  这个比较长,只要将下列代码加入<body</body之间就行: <form Name="InputForm" <div align="center"<center<p<script language="JavaScript" var FirstForm; function StartSearch() { document.forms[FirstForm+document.InputForm.SearchSelect. selectedIndex].elements[0].val...
Outlook客户端设置范例 如果您使用Outlook客户端收发邮件,请参照以下流程进行设置(以Outlook2007为例): 第一步:添加新的电子邮件账户 点击工具菜单,选择帐户设置,帐户设置页面如下图所示,在帐户设置页面点击新建添加新的电子邮件帐户: 在添加新的电子邮件帐户的第一个页面选择电子邮件服务器类型:Microsoft Ex...
如何登录易改客户端 输入您的用户名和密码,点击登录按钮即可开始使用易改。 易改会自动帮您保存用户名,勾选记住密码可以保存您的密码;勾选自动登录则自动勾选记住密码,下次启动易改时自动登录。 为了您的帐号安全,我们不建议您在公共电脑上勾选记住密码和自动登录。

经验教程

919

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部