全 API メッセージに共通の仕様にゃ

Last-modified: 2021-01-30 (土) 01:13:13

以下のメッセージを例にして全 API メッセージに共通の仕様を説明するにゃ.
example message.png

  • 0バイト目 (例示メッセージでは 0x02):
    0x01
    リクエストに対するレスポンスが不要な一方的なメッセージにゃ.
    0x02
    レスポンスを必要とするリクエストメッセージにゃ.
    0x03
    (0バイト目が0x02のリクエストメッセージに対する)レスポンスメッセージにゃ.
  • 1バイト目~2バイト目(例示メッセージでは0x2E0x00): メッセージのシーケンス番号(little endian)にゃ.対応するリクエストとレスポンスでは一致するにゃ.
  • 3バイト目: 0x0A で固定にゃ.
  • 4バイト目: その直後に続く文字列(0x12が文字列終端記号)の長さにゃ.例示メッセージでは 0x1B (==27) で, ".lq.Lobby.fetchGameLiveList" の長さに一致するにゃ.
  • 5バイト目~最初の0x12まで: API 名にゃ.API一覧にゃに対応する名前があるはずにゃ.
  • 3バイト目以降最後まで: Protocol Buffers のメッセージとしてデコードできるにゃ.(TODO: デコードの方法を書く)