Aller au contenu

Démarrage WebSocket

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=YourApp

Le paramètre de requête client est obligatoire. Encodez dans l’URL les noms contenant des espaces ou des caractères spéciaux.

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.

Installez la bibliothèque cliente :

Fenêtre de terminal
python -m pip install websocket-client
import json
from 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))

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é.