Skip to content
This repository was archived by the owner on Jun 20, 2022. It is now read-only.

apollocol: websocket interface

dxstiny edited this page Apr 18, 2021 · 5 revisions

this page describes the WebSocket interface to communicate with the audio player via a WebSocket.

connect to: ws://localhost:8080/ws

since only strings can be sent via WebSocket, we will have to send our data (JSON objects) stringified.

Data

displayname

JSON.stringify({
  apiModule: "data",
  endpoint: "displayname",
  data: null
});

playlists

JSON.stringify({
  apiModule: "data",
  endpoint: "playlists",
  data: null
});

volume

JSON.stringify({
  apiModule: "data",
  endpoint: "volume",
  data: null
});

cover

JSON.stringify({
  apiModule: "data",
  endpoint: "cover",
  data: null
});

radioProgramme

JSON.stringify({
  apiModule: "data",
  endpoint: "radioProgramme",
  data: null
});

accentColour

JSON.stringify({
  apiModule: "data",
  endpoint: "accentColour",
  data: null
});

Control

next

JSON.stringify({
  apiModule: "control",
  endpoint: "next",
  data: null
});

last

JSON.stringify({
  apiModule: "control",
  endpoint: "last",
  data: null
});

playPause

JSON.stringify({
  apiModule: "control",
  endpoint: "playPause",
  data: null
});

volume

JSON.stringify({
  apiModule: "control",
  endpoint: "volume",
  data: {value in %}
});

load/playlist

JSON.stringify({
  apiModule: "control",
  endpoint: "load/playlist",
  data: {playlist index}
});

load

JSON.stringify({
  apiModule: "control",
  endpoint: "load",
  data: {song index}
});

General

version

JSON.stringify({
  apiModule: "general",
  endpoint: "version",
  data: null
});

Game

validate-user

JSON.stringify({
  apiModule: "game",
  endpoint: "validate-user",
  data: {user key}
});

library

JSON.stringify({
  apiModule: "game",
  endpoint: "library",
  data: null
});

launch

JSON.stringify({
  apiModule: "game",
  endpoint: "library",
  data: JSON.stringify({
    id: {igdbId},
    user: {user key}
  })
});