프라우드넷 버전은 1.7.39165-master 이며, 서버는 윈도우 서버, 클라이언트는 webgl빌드입니다.
서버에서 클라 연결을 해제할 때,
bool bRet = g_pGS->m_netServer->CloseConnection(m_HostID);
CNetClientInfo output; bool bRet2 = g_pGS->m_netServer->GetClientInfo(m_HostID, output);
위와 같이 호출한 후, OnClientLeave() 콜백이 오면 해당 클라이언트의 객체를 destroy(m_HostID)하고 있습니다. 서버-클라 간 일정 간격으로 타임 스탬프를 보내고 이 타임 스탬프가 오지 않았다고 판단되면, 위와 같은 방법으로 연결을 해제하고 있습니다.
그런데, OnClientLeave()
콜백이 오지 않아 클라 객체를 해제하지 못하는 현상이 발생합니다. 일정 주기마다 좀비 검사를 하므로, 그 주기마다 해당 클라를 좀비로 인식하여 위의 종료 함수를 호출하지만 OnClientLeave()
콜백이 오지 않아 계속 같은 로그가 반복됩니다.
(검사 주기마다 로그를 보면 bRet와 bRet2 모두 true로 리턴됩니다.) 좀비가 늘어나면 누적됩니다.
CloseConnection()
를 호출하면, OnClientLeave()
콜백에 관계없이 연결 해제 되는건가요?