litecord/docs/lvsp/00-connection.md

2.0 KiB

Litecord Voice Server Protocol (LVSP)

LVSP is a protocol for Litecord to communicate with an external component dedicated for voice data. The voice server is responsible for the Voice Websocket Discord and Voice UDP connections.

LVSP runs over a websocket with TLS. The encoding is JSON.

High level

In a high level:

  • Litecord connects to the Voice Server via a URL already configured beforehand.

OP code table

"client" is litecord. "server" is the voice server.

TODO: voice state management.

opcode name sent by
0 HELLO server
1 IDENTIFY client
2 RESUME client
3 READY server
4 HEARTBEAT client
5 HEARTBEAT_ACK server

high level overview

  • connect, receive HELLO
  • send IDENTIFY or RESUME
  • receive READY
  • start HEARTBEAT'ing

HELLO message

Sent by the server when a connection is established.

field type description
heartbeat_interval integer amount of milliseconds to heartbeat with

IDENTIFY message

Sent by the client to identify itself.

field type description
token string secret value kept between client and server

RESUME message

Sent by the client to resume itself from a failed websocket connection.

The server will resend its data, then send a READY message.

field type description
token string same value from IDENTIFY.token
seq integer last sequence number to resume from

READY message

TODO

field type description

HEARTBEAT message

Sent by the client as a keepalive / health monitoring method.

The server MUST reply with a HEARTBEAT_ACK message back in a reasonable time period.

TODO

field type description

HEARTBEAT_ACK message

Sent by the server in reply to a HEARTBEAT message coming from the client.

TODO

field type description