SteamPingThread - stingray.SteamPingThread 오브젝트 참조 - Stingray Lua API 참조
메시지가 두 네트워크 카드 사이에서 얼마나 빠르게 바운스될 수 있는지 보고하는 ping 시간을 측정하는 데 사용됩니다.
이 오브젝트는 네트워크 카드 간에 단순히 ping 메시지를 바운스하기 위한 별도의 높음 우선순위 스레드를 생성합니다.
Network.ping()이 보고하는 ping 시간은 네트워크 메시지의 전체 왕복 시간을 고려한 것입니다. 즉, ping 시간에는 네트워크 메시지가 네트워크 카드에 도착하는 순간이 아니라 프레임 내 특정 지점에서만 처리됨으로 인해 발생하는 대기 시간도 포함된다는 의미입니다. 그래서 ping 메시지가 pong 될 때 프레임 시간의 절반만큼 대기 시간이 발생하고, 다시 수신될 때 프레임 시간의 절반만큼 대기 시간이 발생하고, 결국 평균으로 총 한 번의 추가 프레임 시간만큼 대기 시간이 발생하는 셈입니다(30fps에서 33ms). 이 시간은 서버가 사용자 동작에 얼마나 빠르게 반응하여 플레이어 환경을 구동해줄 수 있는지 알려준다는 점에서 가장 정확한 ping 시간이라고 할 수 있습니다.
SteamPingThread가 보고하는 ping 시간은 실제 ping 시간보다 좀 더 짧고, 플레이어 환경과 직접적으로 연관되어 있습니다.
사용을 완료한 후에는 ping 스레드에 대해 stingray.SteamPingThread.destroy()를 호출하여 이를 삭제해서 스레드의 점유를 풀어줘야 합니다. 이 작업은 네트워크 종료 전에 수행해야 합니다.
참고: 이 인터페이스는 실험용으로 간주해야 합니다. 해당 API는 이후 버전에서 변경될 수도 있습니다.
|
ping 서버가 추적해야 하는 피어 목록에 지정된 피어를 추가합니다.
|
매개변수 반환하는 항목
이 스레드는 추가된 피어에게 2초마다 ping 메시지를 전송하고, 응답 시간을 측정합니다.
추가하는 피어 역시 SteamPingThread를 실행해야 합니다. 그렇지 않으면 ping 메시지에 응답할 수 없게 되어 해당 피어의 ping 시간을 측정할 수 없습니다. 하지만 원격 피어는 자신의 ping 스레드에 사용자를 다시 피어로 추가할 필요가 없습니다.
|
지정된 ping 스레드를 삭제하여, 이 스레드가 사용하던 모든 메모리의 점유를 풀고 스레드를 중지합니다.
|
매개변수 반환하는 항목
이 함수를 호출한 후에는 SteamPingThread 인터페이스의 어떠한 다른 함수도 지정된 ping 스레드에 대해 호출할 수 없습니다.
|
ping ( self, peer_id ) : number
지정된 피어에 대한 ping 시간을 반환합니다.
|
매개변수 self : | stingray.SteamPingThread | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
peer_id : | string | ping 시간을 검색하려는 피어의 ID입니다. |
반환하는 항목 number |
ping 시간(초)을 반환하거나, 원격 피어와의 연결이 끊겼거나 해당 피어가 SteamPingThread를 실행하고 있지 않아 ping 스레드가 ping 시간을 측정할 수 없는 경우에는 0을 반환합니다.
|
|
이전에 add_peer()를 통해 추가된 피어를 제거하고, 해당 피어에 대한 ping 시간 추적을 중지합니다.
|