Pular para o conteúdo

Início com WebSocket

Use o endereço abaixo, trocando o nome do cliente pelo nome do aplicativo:

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

O parâmetro de consulta client é obrigatório. Codifique para URL os nomes com espaços ou caracteres especiais.

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.

Instale a biblioteca cliente:

Janela do 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 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.