24.연결 유지 기능 사용하기

Edit

모바일 환경에서 셀룰러 <-> 와이파이 전환은 빈번합니다. 프라우드넷은 이러한 환경에서도 엔진단에서 자동으로 네트워크 핸드오버를 처리 합니다. 여기서는 핸드오버 처리 과정과 사용 예를 설명 합니다.

그림 24-1NetClient 의 네트워크 핸드오버 처리 과정

사용자는 서버로의 Connect 이전에 다음과 같은 코드만 추가 하면 됩니다.

CNetConnectionParam cp;
cp.m_enableAutoConnectionRecovery = true;

client.Connect(cp);

서버에서 핸드오버 과정이 일어 났을 때의 이벤트 함수는 INetServerEvent 에서 아래의 함수를 override 하면 됩니다. (자세한 설명은 해당 함수의 주석을 참고 하십시오.)

virtual void OnClientOffline(CRemoteOfflineEventArgs &args) {}
virtual void OnClientOnline(CRemoteOnlineEventArgs &args) {}

마찬가지로 클라이언트에서의 이벤트 함수는 INetClientEvent 에서 아래의 함수를 override 하면 됩니다. (자세한 설명은 해당 함수의 주석을 참고 하십시오.)

virtual void OnServerOffline(CRemoteOfflineEventArgs &args) {}
virtual void OnServerOnline(CRemoteOnlineEventArgs &args) {}
virtual void OnP2PMemberOffline(CRemoteOfflineEventArgs &args) {}
virtual void OnP2PMemberOnline(CRemoteOnlineEventArgs &args) {}
주의 사항:
클라이언트의 네트워크가 끊어지고 Offline 이 콜백 된 뒤, 일정 시간 재연결이 되지 않으면 INetClientEvent.OnLeaveServer, INetServerEvent.OnClientLeave 가 콜백 됩니다.

프라우드넷 1.7.36365 이상 버전에서 서버는 각 클라이언트마다 연결 유지시간을 설정할 수 있는데, 방법은 다음과 같습니다.

NetServer.SetAutoConnectionRecoveryTimeoutTimeMs(HostID, int)
NetServer.SetDefaultAutoConnectionRecoveryTimeoutTimeMs(int)