클라이언트 활용법
타이머 루프, RMI, 이벤트 처리하기
클라이언트의 메인 루프 에 따라 클라이언트는 일정 시간마다 FrameMove를 호출하여 누적된 RMI 수신 실행과 이벤트 핸들링 처리를 할 수 있습니다.
반드시 매 초마다 FrameMove를 호출해야 하는 것은 아니지만, 너무 오랫동안 호출하지 않으면 클라이언트에서 수신된 RMI가 누적되어 메모리 사용량이 늘어납니다.
여러가지 정보 가져오기
클라이언트에서는 P2P 그룹 정보, P2P 연결이 된 클라이언트의 IP 정보, 서버와의 연결 상태, P2P 연결이 된 클라이언트와 P2P relay를 하고 있는지 여부 등 여러가지 정보를 가져올 수 있습니다.
Proud.CNetClient.GetGroupMembers
Nettention.Proud.NetClient.NativeNetClient.GetGroupMembers
매개변수로 주어진 HostID에 해당하는 그룹의 유저를 모두 가져옵니다.
Proud.CNetClient.GetIndirectServerTimeMs
Nettention.Proud.NetClient.NativeNetClient.GetIndirectServerTimeMs
매개변수로 입력한 HostID를 가진 Peer의 서버 시간을 가져옵니다.
Proud.CNetClient.GetLastUnreliablePingMs
Nettention.Proud.NetClient.GetLastUnreliablePingMs
매개변수로 입력한 HostID를 가진 Peer의 마지막 ping time을 가져옵니다.
Proud.CNetClient.GetLocalHostID
Nettention.Proud.NetClient.GetLocalHostID
클라이언트의 로컬 HostID를 가져옵니다.
Proud.CNetClient.GetLocalJoinedP2PGroups
Nettention.Proud.NetClient.GetLocalJoinedP2PGroups
가입된 모든 p2p 그룹 목록을 가져옵니다.
Proud.CNetClient.GetP2PServerTimeMs
Nettention.Proud.NetClient.NativeNetClient.GetP2PServerTimeMs
p2p 연결된 서버의 시간을miliseconds 단위로 가져옵니다.
Proud.CNetClient.GetPeerInfo
Nettention.Proud.NetClient.GetPeerInfo
클라이언트에 연결된 peer의 정보를 가져옵니다.
Proud.CNetClient.GetPeerReliableUdpStats
Nettention.Proud.NetClient.NativeNetClient.GetPeerReliableUdpStats
p2p 간 reliable messaging system 작동 통계를 가져옵니다. (성능 측정이나 디버깅을 위해 사용)
Proud.CNetClient.GetRecentUnreliablePingMs
Nettention.Proud.NetClient.GetRecentUnreliablePingMs
가장 최근에 찍힌 ping time을 milisecond 단위로 반환합니다.
Proud.CNetClient.GetServerAddrPort
Nettention.Proud.NetClient.NativeNetClient.GetServerAddrPort
연결된 서버의 주소를 가져옵니다.
Proud.CNetClient.GetServerConnectionState
Nettention.Proud.NetClient.GetServerConnectionState
서버와의 소켓 연결 상태를 가져옵니다.
Proud.CNetClient.GetServerTimeMs
Nettention.Proud.NetClient.NativeNetClient.GetServerTimeMs
서버의 현재 시간을 가져옵니다.
Proud.CNetClient.GetServerTimeDiffMs
Nettention.Proud.NetClient.NativeNetClient.GetServerTimeDiffMs
클라이언트와 서버 간 시간 차를 구한다.
서버 연결 과정에서 커스텀 데이터 주고 받기
Connect에서 커스텀 필드 파라미터를 채우면, 그 내용은 OnConnectionRequest에서 전달 받습니다.
OnConnectionRequest에서 회신용 커스텀 파라미터를 채우면, 그 내용은 OnJoinServerComplete에서 전달 받습니다.
홀 펀칭된 주소 얻기
먼저 P2P간 통신을 완료합니다.
GetPeerInfo 또는 GetClientInfo로 클라이언트의 정보를 얻습니다.
얻은 정보의 udpAddrFromServer가 홀 펀칭된 주소입니다.
참고 P2P 통신
서버의 시간 얻기
ProudNet에서는 호스트 간 시간 동기화를 위해 서버의 시간을 얻을 수 있습니다.
Proud.CNetClient.GetServerTimeMs
Nettention.Proud.NetClient.GetServerTimeMs
서버와의 레이턴시를 계산해서 서버의 실제 시간을 얻습니다.
Proud.CNetClient.GetP2PServerTimeMs
Nettention.Proud.NativeNetClient.GetP2PServerTimeMs
서버와의 레이턴시를 얻고 P2P 연결된 다른 클라이언트들의 레이턴시를 계산하여 평균을 내는 방식. 더 정확하게 서버의 실제 시간을 얻습니다.
콜백 중간에 끊기
FrameMove를 호출하면 누적되어 있던 모든 이벤트와 수신 RMI가 일제히 호출됩니다.
ProudNet은 사용자가 원하는 경우 누적되어 있던 이벤트와 수신 RMI를 1회의 FrameMove 호출 구간 내에서 처리 도중 리턴하는 기능이 있습니다. 그리고 남아있는 누적 이벤트와 수신 RMI를 다음 FrameMove 호출에서 마저 처리할 수 있도록 합니다.
남아있는 누적 이벤트와 수신 RMI를 중도에 끊으려면 RMI 수신 처리중인 루틴 또는 이벤트 수신 처리중인 루틴에서 HolsterMoreCallbackUntilNextFrameMove를 호출하면 됩니다.
참고
Last updated
Was this helpful?