라벨이 WebSocket인 게시물 표시

Socket.IO 채팅 만들기 2편: Android 인증, 방 입장과 메시지 복구

이 글은 2022년에 작성한 Android Socket.IO 채팅 예제를 현재 구조에 맞춰 전면 개정한 글입니다. 기존 URL과 post ID는 유지합니다. 1편에서 Node.js 서버와 기본 이벤트를 연결했다면, 2편에서는 실제 앱에 필요한 인증, 채팅방, 메시지 확인 응답과 재연결을 다룹니다. 단순히 socket.connect() 가 성공했다고 채팅 기능이 완성되는 것은 아닙니다. 모바일 네트워크는 Wi-Fi와 LTE 사이를 이동하고, 앱은 백그라운드로 내려가며, 연결이 끊긴 동안 메시지가 발생할 수 있습니다. 먼저 보는 핵심 토큰은 연결 시 auth 로 전달하고 서버 미들웨어에서 검증합니다. 방 입장은 서버가 권한을 확인한 뒤 join() 하며, 중요한 메시지는 ACK와 데이터베이스 ID를 사용합니다. 재연결은 전송 보장이 아니라 복구를 시작하는 신호입니다. 서버와 Android 클라이언트 버전 맞추기 Android에서 널리 쓰는 Java 클라이언트 io.socket:socket.io-client:2.1.1 은 Socket.IO 서버 3.x와 4.x에 대응합니다. 공식 Java 클라이언트 호환성 표 를 먼저 확인하세요. kotlin dependencies { implementation ( "io.socket:socket.io-client:2.1.1" ) { exclude ( group = "org.json" , module = "json" ) } } Android가 제공하는 org.json 과 중복되지 않도록 제외합니다. Manifest에는 인터넷 권한이 필요합니다. xml <uses-permission android:name= "android.permission.INTERNET" /> 개발 중인 로컬 HTTP 서버에 접속하려고 usesCleartextTraffic="true...