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
- Connecte-toi.
- Si tu te connectes depuis un autre appareil sans jeton dans l'URL, envoie
authdans les 5 secondes. - MyHUD envoie
welcomeavec l'état actuel. - Si tu veux d'autres canaux que ceux par défaut, envoie
subscribe.
{
"type": "welcome",
"protocolVersion": 2,
"revision": 42,
"authenticated": true,
"state": { "revision": 42, "vetoVisible": true, "hudWindowOpen": true }
}Messages que tu envoies
trigger
Exécute une commande.
{ "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.
{ "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.
{ "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.
{ "type": "resume", "lastRevision": 42 }ping
{ "type": "ping", "t": 1712345678 }MyHUD répond { "type": "pong", "t": 1712345678 }.
Messages que tu reçois
ack
La réponse à un trigger.
{ "type": "ack", "correlationId": "42", "ok": true, "state": { "revision": 43 }, "result": {} }En cas d'échec :
{ "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é.
{ "type": "state", "revision": 43, "patch": { "vetoVisible": false } }event
{ "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.
{ "type": "error", "code": "busy", "message": "Another command is in progress on this connection" }Canaux
| Canal | Messages | Par défaut |
|---|---|---|
state | state : visibilité des panneaux du HUD, roster. | oui |
app | event : changements faits via l'API. | oui |
game | event : ce qui se passe dans le jeu. | non |
Si tu n'envoies jamais subscribe, tu reçois state et app.
Événements app
| Événement | Quand | data |
|---|---|---|
overlay_reloaded | L'overlay a été rechargé. | — |
hud_visibility_changed | La fenêtre overlay a été ouverte ou fermée. | — |
veto_imported | Un veto a été importé et appliqué. | provider, teamA, teamB, boFormat, shown |
veto_updated | Une commande de veto a modifié le veto. | action : le nom de la commande |
match_updated | Les équipes, le nom de l'événement, le format d'équipe ou un score a changé. | match : le résumé du match |
sen_scene_changed | La 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énement | data |
|---|---|
match_live | tableau des scores |
round_end | tableau des scores + winner |
bomb_planted | tableau des scores |
half_time | tableau des scores |
map_end | tableau des scores + winner |
Le tableau des scores est { map, round, scoreCT, scoreT, teamCT, teamT }.
Codes de fermeture
| Code | Raison |
|---|---|
4401 | unauthorized : jeton faux. auth_timeout : pas de auth dans les 5 secondes. |
4403 | local_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.
