connection 2

[안드로이드] 실시간 네크워크 상태 callbackFlow를 이용해 만들어보자! (Youtube 인터넷 연결처럼 구현)

Youtube를 보다가 네트워크가 끊겨버렸을때 앱은 이를 알아차리고 "네트워크 연결이 불안정합니다" 같은 텍스트가 보여진다. 그러다 네트워크가 연결이되면 별 액션을 취하지 않아도 영상 목록이 뜨게된다. 계속 polling을 하는건가? 싶었지만 찾아보니 그렇게 하지 않아도 되었다. 바로 NetworkCallback을 이용하면 쉽게 구현할 수 있는데, 이 글에서는 Kotlin CallbackFlow를 이용하여 Flow로 만들어서 사용해보려고 한다. NetworkStatusTracker 우리가 만들 NetworkStatusTracker는 다음과 같은 기능을 가진다. 네트워크가 연결되면 이벤트를 방출한다. 네트워크가 끊어지면 이벤트를 방출한다. 먼저, 네트워크 연결 상태를 정의해준다. sealed class N..

HTTP 연결과 커넥션 관리

연결 수립 클라이언트와 서버가 HTTP 요청/응답으로 교환하기 전 , TCP 커넥션을 설정해야한다. HTTP/1.0의 기본 동작은 각 요청/응답에 대해 별도의 TCP 커넥션을 여는 것이다. TCP를 이용할 경우, 컴퓨터 상의 HTTP 서버를 위한 기본 포트는 80이다. 요청을 위한 페이지 URL은 도메인 이름과 포트번호 둘 다를 포함하는데, 포트 번호가 80일 경우 생략가능하다. HTTP 흐름 1. TCP 커넥션을 연다. TCP 커넥션은 요청을 보내거나 응답을 받는데 사용된다. 클라이언트는 새로운 커넥션을 열거나, 기존 커넥션을 재사용하거나, 서버에 대한 여러 TCP 커넥션을 열 수 있다. 2. HTTP 메세지를 전송한다. HTTP/2 이전의 메세지는 사람이 읽을 수 있을 정도다. GET / HTTP/1..