WEB开发网
开发学院软件开发VC 用微软的实时通信API集成丰富的客户端通信 阅读

用微软的实时通信API集成丰富的客户端通信

 2010-07-15 20:45:25 来源:WEB开发网   
核心提示:即时消息事件使用IRTCMessagingEvent可在会话参与者中传递即时消息,当一个消息事件产生时,用微软的实时通信API集成丰富的客户端通信(5),应用程序必须获得会话和事件类型,得到相关会话中的参与者信息,下列例子展示了当请求会话时所作的处理;客户端通过一阵铃声被通知,请求被应答,以便能将消息传递给适当一方,事

即时消息事件

使用IRTCMessagingEvent可在会话参与者中传递即时消息。当一个消息事件产生时,应用程序必须获得会话和事件类型,得到相关会话中的参与者信息,以便能将消息传递给适当一方。事件处理者也能处理会话状态的改变。

HRESULT CAVDConfDlg::OnRTCMessagingEvent(IRTCMessagingEvent *pEvent)
{
  ...
  hr = pEvent->get_Session(&pSession);
  hr = pEvent->get_EventType(&enType);
  hr = pEvent->get_Participant(&pParticipant);
  if (enType == RTCMSET_MESSAGE)
  {
    hr = pEvent->get_MessageHeader(&bstrContentType);
    hr = pEvent->get_Message(&bstrMessage);
    // Deliver the message to the session window
    if (m_cMessageDlg)
   m_cMessageDlg.DeliverMessage(pParticipant, bstrContentType,
     bstrMessage);
  }
  else if (enType == RTCMSET_STATUS)
  {
    hr = pEvent->get_UserStatus(&enStatus);
    // Deliver the user status to the session window
    m_cMessageDlg.DeliverUserStatus(pParticipant, enStatus);
  }
  return S_OK;
}

会话状态改变事件

会话状态改变事件的处理过程与其他RTC事件相同。会话状态的改变包括建立一个新的音/视频会话,或者通知客户端一个到来的即时消息。下列例子展示了当请求会话时所作的处理;客户端通过一阵铃声被通知,请求被应答,然后会话开始。

Void CAVDConfDlg::OnRTCSessionStateChangeEvent(IRTCSessionStateChangeEvent *pEvent)
{
  ...
  hr = pEvent->get_State(&enState);
  hr = pEvent->get_Session(&pSession);
  switch ( enState )
  {
  case RTCSS_INCOMING:
    {
   ...
      // This event is called when an incoming call occurs
      RTC_SESSION_TYPE enType;
      hr = pSession->get_Type(&enType);
      // Ring the bell
      m_pClient->PlayRing(RTCRT_PHONE, VARIANT_TRUE);
      // Accept the session
      hr = pSession->Answer();
     }
   }
  ...
}

上一页  1 2 3 4 5 6  下一页

Tags:微软 实时 通信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接