DocumentationTemps réel

WebSocket temps réel

Une connexion par utilisateur : /ws/{user_id}

const ws = new WebSocket("wss://" + location.host + "/ws/" + userId);
ws.onmessage = e => console.log(JSON.parse(e.data));
ws.send(JSON.stringify({ type: "ping" }));

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

Messages du client vers le serveur

typeUsage
ping / pongMaintien de connexion
messageEnvoyer un message privé
voice_messageMessage vocal (receiver_id, audio_data en base64)
typing / stop_typingIndicateur de saisie (receiver_id, is_typing)
call_offer, call_answer, call_ice_candidate, call_reject, call_endSignalisation d'appel (WebRTC)
join_live, live_comment, leave_liveLives : rejoindre, commenter, quitter
join_project, project_updateCollaboration sur un projet audio

Messages du serveur vers le client (exemples)

typeQuand
new_messageMessage reçu (message_id, sender_id, content, msg_type)
message_sentConfirmation à l'expéditeur
typingL'interlocuteur écrit
project_updatedModification d'un projet par un collaborateur
errorÉchec d'une action

La liste exacte des champs évolue : le code source du serveur fait foi.