Ir al contenido

Inicio con WebSocket

Usa el siguiente destino y sustituye el nombre de cliente por el de tu aplicación:

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

El parámetro de consulta client es obligatorio. Codifica para URL los nombres que contengan espacios o caracteres especiales.

Envía un mensaje de texto con el comando SendNotification. jsonData debe ser una cadena que codifique JSON, no un objeto anidado.

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

La implementación actual lee command y jsonData; no enruta notificaciones con sender ni target. Los demás comandos se ignoran. Un envío correcto no es una confirmación de entrega. El campo target es opcional y se ignora; los ejemplos usan AstralOverlay como etiqueta descriptiva. También puedes omitirlo.

Instala la biblioteca cliente:

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

Para una aplicación de consola .NET moderna:

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

Este ejemplo desconecta al terminar. Una integración de larga duración puede reutilizar la conexión y debería reconectar tras errores de conexión.

Consulta la referencia de datos y los límites de compatibilidad.