전송과 버전
- 앱에서 노드로: WebSocket + JSON. 필드 이름은 모두 카멜 케이스를 씁니다.
- 노드 사이: libp2p. 프로토콜 ID는 /gather/message/1.0.0 같은 형태입니다. 노드 간 프로토콜은 노드 내부에서 구현되며 GProtocol에 속하지 않습니다.
- 버전 규칙: 호환이 깨지는 변경이 있으면 메이저 버전을 올리고, 마이너 버전에서는 필드만 추가합니다. 로그인할 때 프로토콜 버전을 보내며, 메이저 버전이 다른 요청은 거부되고 업그레이드하라는 안내가 표시됩니다.
- 실시간 액션(입력 중 표시, 통화 시그널링 등)은 전달할 수 없으면 폐기되며 오프라인 메시지로 저장되지 않습니다.