Skip to content

채팅 목록 실시간 동기화

Woogie edited this page Dec 18, 2022 · 1 revision

문제

현재 위치 기반 입장할 수 있는 채팅방과 입장 불가능한 채팅방을 구별해야 하며 실시간으로 수신하는 메시지를 읽은 메시지와 안 읽은 메시지 또한 표시를 해야 했습니다.

해결

입장할 수 있는 채팅방을 구별하기 위해 User Default에 저장된 현재 위치 값을 Observe 하여 User Default에 저장된 위치가 변경될 때마다 UI에 변경을 해주었습니다. 안 읽은 메시지를 표시하기 위해 특정 채팅방에서 마지막까지 읽은 정보를 저장하는 ChatRoomTicket이라는 객체를 만들었습니다. 각 채팅방 목록의 셀은 채팅방의 정보가 변화할 때마다 현재 채팅방에 해당하는 ChatRoomTicket의 정보를 가져와 메시지의 총개수와 내가 읽은 메시지의 차이를 계산하여 안 읽은 메시지를 표시했습니다.

Clone this wiki locally