Skip to content

API WebSocket ​

Adresse : ws://127.0.0.1:44555 sur le PC de MyHUD. Depuis un autre appareil : ws://<adresse>:44555/?token=<jeton>.

Utilise le WebSocket quand tu veux :

  • recevoir les changements et les événements du jeu en direct ;
  • envoyer beaucoup de commandes sur une seule connexion.

Tous les messages sont des objets JSON avec un champ type.

Connexion ​

  1. Connecte-toi.
  2. Si tu te connectes depuis un autre appareil sans jeton dans l'URL, envoie auth dans les 5 secondes.
  3. MyHUD envoie welcome avec l'état actuel.
  4. Si tu veux d'autres canaux que ceux par défaut, envoie subscribe.
json
{
  "type": "welcome",
  "protocolVersion": 2,
  "revision": 42,
  "authenticated": true,
  "state": { "revision": 42, "vetoVisible": true, "hudWindowOpen": true }
}

Messages que tu envoies ​

trigger ​

Exécute une commande.

json
{ "type": "trigger", "action": "set_event_name", "payload": { "name": "Spring Cup" }, "correlationId": "42" }
  • payload : optionnel, identique au corps HTTP.
  • correlationId : optionnel. MyHUD le remet dans l'ack, pour que tu puisses relier la réponse à la requête.

Envoie une commande à la fois par connexion : attends l'ack avant d'envoyer le trigger suivant. Sinon, MyHUD répond avec l'erreur busy.

subscribe ​

Choisit les canaux que tu reçois.

json
{ "type": "subscribe", "channels": ["state", "app", "game"] }

MyHUD répond avec subscribed. Les noms de canaux inconnus sont listés dans ignored.

auth ​

Envoie le jeton, s'il n'est pas dans l'URL.

json
{ "type": "auth", "token": "<jeton>" }

MyHUD répond authenticated, puis welcome.

resume ​

Après une reconnexion, donne la dernière revision reçue. Si l'état a changé depuis, MyHUD envoie un message state.

json
{ "type": "resume", "lastRevision": 42 }

ping ​

json
{ "type": "ping", "t": 1712345678 }

MyHUD répond { "type": "pong", "t": 1712345678 }.

Messages que tu reçois ​

ack ​

La réponse à un trigger.

json
{ "type": "ack", "correlationId": "42", "ok": true, "state": { "revision": 43 }, "result": {} }

En cas d'échec :

json
{ "type": "ack", "correlationId": "42", "ok": false, "error": "No veto in progress", "code": "conflict" }

error est le message, et code est le code d'erreur.

state ​

Un changement de l'état du HUD. patch contient seulement les champs qui ont changé.

json
{ "type": "state", "revision": 43, "patch": { "vetoVisible": false } }

event ​

json
{ "type": "event", "name": "veto_updated", "data": { "action": "veto_select" } }

error ​

Un message que MyHUD n'a pas pu traiter, ou une commande envoyée pendant qu'une autre est en cours.

json
{ "type": "error", "code": "busy", "message": "Another command is in progress on this connection" }

Canaux ​

CanalMessagesPar défaut
statestate : visibilité des panneaux du HUD, roster.oui
appevent : changements faits via l'API.oui
gameevent : ce qui se passe dans le jeu.non

Si tu n'envoies jamais subscribe, tu reçois state et app.

Événements app ​

ÉvénementQuanddata
overlay_reloadedL'overlay a été rechargé.—
hud_visibility_changedLa fenêtre overlay a été ouverte ou fermée.—
veto_importedUn veto a été importé et appliqué.provider, teamA, teamB, boFormat, shown
veto_updatedUne commande de veto a modifié le veto.action : le nom de la commande
match_updatedLes équipes, le nom de l'événement, le format d'équipe ou un score a changé.match : le résumé du match
sen_scene_changedLa fenêtre des scènes a changé de scène, ou s'est fermée.scene, ou null

MyHUD envoie ces événements après les commandes de l'API (depuis n'importe quel client). Il ne les envoie pas quand tu modifies la même chose dans la fenêtre MyHUD.

Événements game ​

Voir Réagir aux événements du jeu.

Événementdata
match_livetableau des scores
round_endtableau des scores + winner
bomb_plantedtableau des scores
half_timetableau des scores
map_endtableau des scores + winner

Le tableau des scores est { map, round, scoreCT, scoreT, teamCT, teamT }.

Codes de fermeture ​

CodeRaison
4401unauthorized : jeton faux. auth_timeout : pas de auth dans les 5 secondes.
4403local_only : le mode réseau local est désactivé. forbidden_origin : connexion depuis une page web. invalid_host : adresse invalide.

MyHUD ferme aussi toutes les connexions quand il redémarre, ou quand tu modifies les réglages d'automatisation.