DirectPlay DirectPlay Voice 음성 클라이언트 메시지의 처리   [목차열람] [주소복사] [슬롯비우기]
음성 클라이언트 메시지의 처리
 
Microsoft DirectX 9.0

음성 클라이언트 메시지의 처리


여기에서는, Microsoft® DirectPlay® 음성 세션의 클라이언트의 메시지를 처리하는 방법에 대해 설명한다. 호스트 관련의 메시징의 설명에 대해서는, 「음성 호스트 메시지의 처리」를 참조할것. 메시징의 전반적인 내용에 대해서는, 「DirectPlay 메시징의 처리」를 참조할것.

Voice 메시징에 관한 전반적인 고려점

DirectPlay Voice 로 사용되는 많은 메시지는, DirectPlay 코어 애플리케이션 프로그래밍 인터페이스 (API)로 사용되는 것과 유사하다. 그러나, 유사한 코어 메시지와 Voice 메시지여도, 사용법이 다른 경우가 있다.

예를 들어, 코어 세션 또는 음성 세션에 접속 하면, DirectPlay 는 접속 시행의 결과가 포함된 완료 메시지를 돌려준다. 코어 세션에서는, 동기적으로 접속하는 경우에서도, 상황에 따라서는 DPN_MSGID_CONNECT_COMPLETE 완료 메시지를 수신하는 일이 있다. 그러나, DirectPlay Voice 에서는, 동기적으로 음성 세션에 접속하려고 하는 경우, 완료 메시지를 수신할 것은 없다. 비동기에게 음성 세션에 접속하는 경우만,DVMSGID_CONNECTRESULT 완료 메시지를 수신한다.

코어 메시지와 음성 메시지의 처리로 크게 다른 점의 1 개는, 코어 메시지 핸들러는 모든 코어 메시지를 수신하는 것이다. DirectPlay Voice 에는,IDirectPlayVoiceClient::SetNotifyMask 를 호출해, 수신하고 싶은 메시지의 리스트를 지정하는 옵션이 있다. pdwMessageMask 파라미터를 통해서 이 메서드에 건네주는, 통지 리스트에 있는 메시지만이 수신된다. 이 리스트에는, 적어도 1 개의 메시지가 포함되어 있을 필요가 있다. IDirectPlayVoiceClient::SetNotifyMask 를 사용해, 모든 DirectPlay Voice 메시지를 무효로 하는 것은 할 수 없다.

  DirectPlay 세션과 DirectPlay Voice 세션은 다른 엔티티이다. 각 인터페이스의 메시지의 순서에는 보증이 있지만, 인터페이스간의 메시지의 순서에 대해서는 보증이 없다.

기동 메시지

DirectPlay Voice 는, 보통의 DirectPlay 세션에 대한 추가의 옵션이다. 이것에 의해, 세션의 멤버간의 음성 통신이 가능하게 된다. 음성 세션의 클라이언트가 되려면 , 적절한 DirectPlay 개체를 생성 해, 보통의 피어 투 피어 또는 클라이언트/서버 세션에 접속하고 있을 필요가 있다. 더 자세한 정보는, 「피어 투 피어 세션」또는 「클라이언트/서버 세션」을 참조할것.

모든 음성 세션에는, 호스트가 필요하다. 피어 투 피어 세션의 경우는, 멤버의 1 명이 음성 세션의 호스트로서 선택되고 있을 필요가 있다. 음성 호스트는, 코어 세션의 호스트가 되고 있는 멤버와 같은 필요는 없다. 클라이언트/서버 세션의 경우, 서버는 음성 세션과 코어 세션의 호스트가 될 필요가 있다. 세션 호스트가 결정하면 호스트는 음성 서버 개체를 생성 해,IDirectPlayVoiceServer::StartSession 를 호출해, 음성 세션을 시작 할 필요가 있다. 세션이 시작 되면 클라이언트는 접속할 수 있다.

여기에서는, 음성 클라이언트가 세션에 참가할 경우에 수신할 수 있는 메시지의 개요를 나타낸다.

보통의 게임 플레이중의 메시징

정상적으로 접속한 후는, 음성 세션중에 수많은 메시지를 수신한다. 수신할 가능성이 있는 메시지는, 피어 투 피어 세션이나 클라이언트/서버 세션 등에 의해서 다르다. 원칙으로서 클라이언트/서버 음성 세션의 음성 클라이언트는, 특정의 player에 관련된 메시지를 수신하지 않는다.

공통의 Voice 메시지

다음의 메시지는, 음성 세션의 양쪽 모두의 종류의 클라이언트가 수신한다.

피어 투 피어 메시지

다음의 메시지는, 피어 투 피어 음성 세션의 클라이언트가 수신한다.

세션 종료 메시지



© 2002 Microsoft Corporation. All rights reserved.
↑TOP