WebSocket 의 기본은 보내고 잊기야
프로토콜은 ‘이 메시지에 대한 응답을 기다려’라는 의미를 제공하지 않아. 모든 메시지가 독립적이지. 사용자 데이터를 가져오거나 설정을 저장하는 등 클라이언트가 결과를 확인해야 한다면 요청과 응답의 의미를 직접 만들어야 해. 이때 상관관계 ID 를 추가해. 클라이언트가 고유 ID 를 정하고 서버가 그대로 돌려주면 클라이언트가 둘을 짝지을 수 있어.
Promise 로 감싼 요청
클라이언트에서는 작은 Promise 래퍼를 두면 편해. await ws.request('user.get', {id: 'x'}) 가 응답 데이터를 돌려주는 모습이지. 내부에서는 UUID 를 만들고 결과 처리기를 등록한 뒤 메시지를 보내고 기다려. 응답이 오지 않는 것도 가능한 결과이므로 반드시 시간 제한을 넣어.