Início com WebSocket
Conectar
Seção intitulada “Conectar”Use o endereço abaixo, trocando o nome do cliente pelo nome do aplicativo:
ws://127.0.0.1:42070/?client=YourAppO parâmetro de consulta client é obrigatório. Codifique para URL os nomes com espaços ou caracteres especiais.
Enviar um envelope
Seção intitulada “Enviar um envelope”Envie uma mensagem de texto com SendNotification. jsonData deve ser uma string contendo JSON codificado, não um objeto aninhado.
{ "sender": "YourApp", "target": "AstralOverlay", "command": "SendNotification", "jsonData": "{\"title\":\"Hello from YourApp\",\"content\":\"Your first notification.\",\"sourceApp\":\"YourApp\"}"}A implementação atual lê command e jsonData; não usa sender ou target para rotear notificações. Os outros comandos são ignorados. Um envio bem-sucedido não confirma a entrega. O campo target é opcional e ignorado; os exemplos usam AstralOverlay como rótulo descritivo. Você também pode omiti-lo.
Exemplo Python
Seção intitulada “Exemplo Python”Instale a biblioteca 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))Exemplo C#
Seção intitulada “Exemplo C#”Para um aplicativo de console .NET moderno:
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);O exemplo desconecta ao terminar. Uma integração duradoura pode reutilizar a conexão e deve reconectar após falhas.
Veja a referência de dados e os limites de compatibilidade.
