Démarrage WebSocket
Connexion
Section intitulée « Connexion »Utilisez le point d’accès ci-dessous en remplaçant le nom du client par celui de votre application :
ws://127.0.0.1:42070/?client=YourAppLe paramètre de requête client est obligatoire. Encodez dans l’URL les noms contenant des espaces ou des caractères spéciaux.
Envoyer une enveloppe
Section intitulée « Envoyer une enveloppe »Envoyez un message texte avec la commande SendNotification. jsonData doit être une chaîne encodant du JSON, pas un objet imbriqué.
{ "sender": "YourApp", "target": "AstralOverlay", "command": "SendNotification", "jsonData": "{\"title\":\"Hello from YourApp\",\"content\":\"Your first notification.\",\"sourceApp\":\"YourApp\"}"}L’implémentation actuelle lit command et jsonData ; elle n’utilise pas sender ou target pour acheminer les notifications. Les autres commandes sont ignorées. Un envoi réussi ne constitue pas un accusé de livraison. Le champ target est facultatif et ignoré ; les exemples utilisent AstralOverlay comme libellé descriptif. Vous pouvez aussi l’omettre.
Exemple Python
Section intitulée « Exemple Python »Installez la bibliothèque cliente :
python -m pip install websocket-clientimport jsonfrom websocket import create_connection
payload = { "title": "Build complete", "content": "Your project is ready.", "sourceApp": "BuildHelper", "timeout": 5.0,}message = { "sender": "BuildHelper", "target": "AstralOverlay", "command": "SendNotification", "jsonData": json.dumps(payload),}with create_connection("ws://127.0.0.1:42070/?client=BuildHelper") as connection: connection.send(json.dumps(message))Exemple C#
Section intitulée « Exemple C# »Pour une application console .NET moderne :
using System;using System.Net.WebSockets;using System.Text;using System.Text.Json;using System.Threading;
using var socket = new ClientWebSocket();using var timeout = new CancellationTokenSource(TimeSpan.FromSeconds(5));await socket.ConnectAsync( new Uri("ws://127.0.0.1:42070/?client=BuildHelper"), timeout.Token);
var payload = new { title = "Build complete", content = "Your project is ready.", sourceApp = "BuildHelper", timeout = 5.0};var envelope = new { sender = "BuildHelper", target = "AstralOverlay", command = "SendNotification", jsonData = JsonSerializer.Serialize(payload)};var bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(envelope));await socket.SendAsync( new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, timeout.Token);Cet exemple se déconnecte une fois terminé. Une intégration de longue durée peut réutiliser sa connexion et doit se reconnecter après une erreur de connexion.
Consultez la référence du contenu et les limites de compatibilité.
