Zum Inhalt springen

WebSocket-Schnellstart

Nutze den folgenden Endpunkt und ersetze den Clientnamen durch deinen Anwendungsnamen:

ws://127.0.0.1:42070/?client=YourApp

Der Abfrageparameter client ist erforderlich. Kodiere Namen mit Leer- oder Sonderzeichen für die URL.

Sende eine Textnachricht mit SendNotification. jsonData muss eine JSON-kodierte Zeichenfolge sein, kein verschachteltes Objekt.

{
"sender": "YourApp",
"target": "AstralOverlay",
"command": "SendNotification",
"jsonData": "{\"title\":\"Hello from YourApp\",\"content\":\"Your first notification.\",\"sourceApp\":\"YourApp\"}"
}

Die Implementierung liest command und jsonData; sie verwendet sender oder target nicht zur Weiterleitung. Andere Befehle werden ignoriert. Erfolgreiches Senden ist keine Zustellbestätigung. Das Feld target ist optional und wird ignoriert; die Beispiele verwenden AstralOverlay als beschreibende Bezeichnung. Du kannst es auch weglassen.

Installiere die Clientbibliothek:

Terminal-Fenster
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))

Für eine moderne .NET-Konsolenanwendung:

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);

Das Beispiel trennt anschließend die Verbindung. Eine dauerhaft laufende Integration kann sie wiederverwenden und sollte nach Verbindungsfehlern neu verbinden.

Siehe Nutzdatenreferenz und Kompatibilitätsgrenzen.