[참고]
PingPong
- PingPong을 사용하는 케이스는 일반적으로 웹소켓에서 사용
- 앱에서 서버에게 ping을 보내고, 서버로부터 pong을 받는 로직
- 만약 서버로부터 pong이 앱에서 설정한 특정 시간안에 안오면 lost connection으로 판단
- 주의할점
- 앱에서 서버에서 ping을 보낼때 throttle 적용 (만약 pong이 올때마다 ping을 날리면 짧은순간에 수많은 통신이 이루어짐)
PingPong 구현 아이디어
- ping을 보내는 부분
- 1) API.requestPing 수행 -> response를 받으면 다시 ping을 보내는 코드를 구현
- 2) 서버에 ping을 보낼땐 항상 timer를 사용하여 시간을 체크하고 타이머가 다 된 경우, completion 처리를 수행
- 타이머는 Swift에서 제공하는 Timer를 사용하지 않고 Observable<Int>.timer(_:scheduler:)를 사용하여 간편하게 구현
- Swift에서 제공하는 Timer를 사용하면 deinit할때도 timer를 따로 invalidate()시켜줘야 하는 코드가 들어가므로 번거로움
- Observable의 timer와 disposeBag을 적절히 사용하면 매우 편리하게 구현이 가능
[참고]
disposeBag이란?: https://babbab2.tistory.com/186
RxSwift) Dispose /Disposable / DisposeBag 이해하기
안녕하세요, 소들입니다 XD hm.. 요즘 제 블로그 댓글의 대부분이 소들님은 개발 공부를 어떻게 하셨나요? 에 대한 내용인듯 한디.. 교과서.. 위주로.. 공부하셈.. 두번하셈.. 라고 할뻔... ㅎㅎ 나중
babbab2.tistory.com
ping API 개요
- ping은 Packet Internet Groper의 약어로, 컴퓨터 네트워크 상태를 점검하고 진단하는 명령어
- ping API는 이러한 ping 기능을 제공하는 API로, 클라이언트가 서버에 ping 요청을 보내면 서버가 응답을 보내는 방식으로 동작
- 주로 서버의 가용성을 확인하거나 네트워크 연결 상태를 점검하는 데 사용된다.
ping API 구현
- ping API 엔드포인트는 일반적으로 매우 간단하다.
- 클라이언트가 ping 요청을 보내면 서버는 "pong"이라는 텍스트를 응답으로 보낸다.
- 이를 통해 서버가 정상적으로 작동 중인지, 네트워크 연결이 원활한지 확인할 수 있다.
ping API 활용
- 서버의 가용성 모니터링: 주기적으로 ping API를 호출하여 서버의 상태를 확인할 수 있다.
- 네트워크 문제 진단: ping API를 통해 네트워크 지연 시간, 패킷 손실 등을 확인할 수 있다.
- 로드 밸런싱: 여러 서버에 대한 ping 응답 시간을 비교하여 최적의 서버를 선택할 수 있다.
- 서비스 상태 확인: 사용자가 직접 ping API를 호출하여 서비스 상태를 확인할 수 있다.
ICMP 프로토콜
- ping 명령어는 ICMP(Internet Control Message Protocol) 프로토콜을 사용
- ICMP는 IP 네트워크에서 오류 메시지, 제어 메시지 등을 전송하는 데 사용되는 프로토콜
- ping 명령어는 ICMP Echo Request 메시지를 보내고, 대상 호스트가 ICMP Echo Reply 메시지로 응답한다.
'iOS' 카테고리의 다른 글
[iOS] WebKit - WKNavigationDelegate (1) | 2025.02.23 |
---|---|
[iOS] WebKit - WKScriptMessageHandler, WKScriptMessageHandlerWithReply (0) | 2025.02.22 |
메모리 최적화 - iOS Memory Deep Dive (1) | 2024.02.23 |
[Swift] Profiling 방법 (0) | 2024.02.20 |
[iOS] NearbyInteraction란? (2) | 2024.01.13 |