Proud::INetClientEvent 클래스 참조abstract
Proud::INetClientEvent에 대한 상속 다이어그램 :

Public 멤버 함수

virtual void OnJoinServerComplete (ErrorInfo *info, const ByteArray &replyFromServer)=0
 
virtual void OnLeaveServer (ErrorInfo *errorInfo)=0
 
virtual void OnP2PMemberJoin (HostID memberHostID, HostID groupHostID, int memberCount, const ByteArray &customField)=0
 
virtual void OnP2PMemberLeave (HostID memberHostID, HostID groupHostID, int memberCount)=0
 
virtual void OnChangeP2PRelayState (HostID remoteHostID, ErrorType reason)=0
 
virtual void OnServerOffline (CRemoteOfflineEventArgs &)
 
virtual void OnServerOnline (CRemoteOnlineEventArgs &)
 
virtual void OnP2PMemberOffline (CRemoteOfflineEventArgs &)
 
virtual void OnP2PMemberOnline (CRemoteOnlineEventArgs &)
 
virtual void OnChangeServerUdpState (ErrorType)
 
virtual void OnSynchronizeServerTime ()=0
 
- Proud::INetCoreEvent(으)로부터 상속된 Public 멤버 함수
virtual void OnError (ErrorInfo *errorInfo)=0
 
virtual void OnWarning (ErrorInfo *errorInfo)=0
 
virtual void OnInformation (ErrorInfo *errorInfo)=0
 
virtual void OnException (Exception &e)=0
 
virtual void OnNoRmiProcessed (RmiID rmiID)=0
 
virtual void OnReceiveUserMessage (HostID sender, const RmiContext &rmiContext, uint8_t *payload, int payloadLength)
 
virtual void OnTick (void *)
 
virtual void OnUserWorkerThreadCallbackBegin (CUserWorkerThreadCallbackContext *)
 
virtual void OnUserWorkerThreadCallbackEnd (CUserWorkerThreadCallbackContext *)
 

상세한 설명

CNetClient 용 event sink

용법

  • 이 객체를 구현한다.
  • CNetClient 에 파라메터로 전달한다.

멤버 함수 문서화

virtual void Proud::INetClientEvent::OnChangeP2PRelayState ( HostID  remoteHostID,
ErrorType  reason 
)
pure virtual

타 클라이언트와의 P2P 통신 경로(릴레이 혹은 직접)가 바뀌는 순간 이 메서드가 호출됩니다.

  • 바뀐 후 호출되는 것이므로 CNetClient.GetPeerInfo 를 호출해서 CNetPeerInfo.Proud.CNetPeerInfo.m_RelayedP2P 의 값을 열람해도 됩니다.
  • 이것이 콜백되는 것과 상관없이 P2P간 서로 통신은 항상 가능합니다. 다만, 피어간 메시징이 릴레이를 하느냐 직접 이루어지느냐의 차이가 있을 뿐입니다.
  • ProudNet의 P2P 통신 경로에 대한 자세한 내용은 ProudNet의 P2P 통신 성능 를 참고하십시오.
매개변수
remoteHostIDP2P 연결이 되어 있는 타 peer의 HostID
reasonP2P 연결이 성공한 경우에는 ErrorType_Ok 가 들어있다. 여타의 값인 경우는 '왜 연결이 relay로 바뀌었는지'를 담는다.
virtual void Proud::INetClientEvent::OnChangeServerUdpState ( ErrorType  )
inlinevirtual

서버와의 UDP 통신이 정상적이냐의 여부가 바뀌는 순간 이 메서드가 호출된다.

매개변수
reasonErrorType_Ok 인 경우 서버와의 UDP 통신이 정상적으로 수행중이며 서버와의 unreliable RMI 메시징이 UDP를 경유한다. 여타 값인 경우 서버와의 UDP 통신이 불가능하게 됐음을 의미하며 이 기간 동안 서버와의 unreliable RMI 메시징은 TCP를 경유한다.
virtual void Proud::INetClientEvent::OnJoinServerComplete ( ErrorInfo info,
const ByteArray replyFromServer 
)
pure virtual

CNetServer.Connect 를 통해 서버 연결을 시도한 결과가 도착하면 발생하는 이벤트이다.

매개변수
info서버 연결 결과를 다음 객체. 서버와의 연결이 성공한 경우 ErrorInfo.m_type 이 success value를 갖는다. 서버와의 연결이 실패한 경우 이 값을 열람하면 된다. 자세한 것은 ErrorInfo 클래스 설명을 참고.
replyFromServer서버로부터 받은 추가 메시지이다. 이 값은 INetServerEvent.OnConnectionRequest 에서 보낸 값이다.
virtual void Proud::INetClientEvent::OnLeaveServer ( ErrorInfo errorInfo)
pure virtual

서버 연결 해제시 발생 이벤트입니다.

  • 클라이언트에서 먼저 연결 해제(Disconnect 호출)를 한 경우에는 이 이벤트가 발생하지 않습니다. 그러나, NetClient.FrameMove를 호출하는 스레드가 NetClient.Disconnect 또는 NetClient.Dispose를 호출하는 스레드가 같으면 콜백될 수 있습니다.
    매개변수
    errorInfo어떤 이유로 서버와의 연결이 해제되었는지를 담고 있습니다. 자세한 것은 ErrorInfo 도움말에 있습니다.
virtual void Proud::INetClientEvent::OnP2PMemberJoin ( HostID  memberHostID,
HostID  groupHostID,
int  memberCount,
const ByteArray customField 
)
pure virtual

P2P 그룹 이 생성되거나 P2P그룹에 새 멤버가 추가되는 경우 이 메서드가 콜백됩니다. 로컬 호스트 자신에 대해서도 이것이 호출됩니다.

예를 들어 클라이언트 A가 이미 들어가 있는 그룹 G에 B가 새로 들어오면 A는 (B,G)를 받고, B는 (A,G), (B,G)를 받게 됩니다.

매개변수
memberHostID자기 또는 타 peer의 HostID입니다.
groupHostIDP2P 그룹의 HostID입니다.
memberCount처리된 후 멤버 수 입니다.
customFieldCNetServer.CreateP2PGroup 또는 CNetServer.JoinP2PGroup 에서 사용자가 입력한 커스텀 데이터가 여기에서 그대로 전달됩니다.
virtual void Proud::INetClientEvent::OnP2PMemberLeave ( HostID  memberHostID,
HostID  groupHostID,
int  memberCount 
)
pure virtual

P2P 그룹 이 생성되거나 기존 P2P그룹에서 피어가 탈퇴시 이 메서드가 콜백됩니다. 로컬 호스트 자신에 대해서도 이것이 호출됩니다.

매개변수
memberHostID자기 또는 타 peer의 HostID입니다.
groupHostIDP2P 그룹의 HostID입니다.
memberCount처리된 후 멤버 수입니다.
virtual void Proud::INetClientEvent::OnP2PMemberOffline ( CRemoteOfflineEventArgs )
inlinevirtual

자신이 속한 P2P Group 내의 타 피어가 서버와의 연결이 끊겼을 때 콜백 됩니다. (해당 함수는 NetClient 의 NetConnectionParam.m_enableAutoConnectionRecovery 가 true 로 설정 되어야 합니다.)

매개변수
args연결이 끊긴 피어의 정보가 담겨 있습니다.
virtual void Proud::INetClientEvent::OnP2PMemberOnline ( CRemoteOnlineEventArgs )
inlinevirtual

자신이 속한 P2P Group 내의 타 피어가 서버와의 연결이 끊긴 뒤 재 접속이 이루어지면 콜백 됩니다. (해당 함수는 NetClient 의 NetConnectionParam.m_enableAutoConnectionRecovery 가 true 로 설정 되어야 합니다.)

매개변수
args재 연결이 된 피어의 정보가 담겨 있습니다.
virtual void Proud::INetClientEvent::OnServerOffline ( CRemoteOfflineEventArgs )
inlinevirtual

서버와의 연결이 끊겼을 때 콜백 됩니다. 해당 이벤트가 콜백이 된 뒤, 서버에 재 접속이 이루어지지 않으면 OnLeaveServer 가 콜백 됩니다. (해당 함수는 NetClient 의 NetConnectionParam.m_enableAutoConnectionRecovery 가 true 로 설정 되어야 합니다.)

매개변수
args연결이 끊겼을 때 여러가지 정보를 담고 있습니다.
virtual void Proud::INetClientEvent::OnServerOnline ( CRemoteOnlineEventArgs )
inlinevirtual

서버와의 연결이 끊긴 뒤 재 접속이 이루어지면 콜백 됩니다. (해당 함수는 NetClient 의 NetConnectionParam.m_enableAutoConnectionRecovery 가 true 로 설정 되어야 합니다.)

매개변수
args재 연결에 대한 정보를 담고 있습니다.
virtual void Proud::INetClientEvent::OnSynchronizeServerTime ( )
pure virtual

서버와의 시간이 동기화 될 때마다 호출된다. 서버 시간 동기화는 이 메서드의 호출 횟수가 증가할수록 점차 정확도가 증가한다. 이 메서드 내에서도 GetServerTimeMs()을 호출해도 된다.