Files
Baradb/docs/de/api-websocket.md
T
dimgigov c95bc4cd44
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
docs: synchronize documentation across all languages
- Add mcp.md to: bg, fa, ru, tr, zh, ar
- Add index.md to Bulgarian (bg)
- Add 24 missing German (de) documentation files

Translations for all supported languages now complete.
2026-05-17 16:29:28 +03:00

1.6 KiB

WebSocket API

Vollduplex-Streaming für Echtzeit-Datenfeeds und Push-Benachrichtigungen.

Verbindung

ws://localhost:9471/ws

Client-Beispiel

const ws = new WebSocket('ws://localhost:9471/ws');

ws.onopen = () => {
  console.log('Connected');
  ws.send(JSON.stringify({
    type: 'query',
    sql: 'SELECT * FROM users'
  }));
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Received:', data);
};

Nachrichtenformat

{
  "type": "query",
  "id": "uuid",
  "sql": "SELECT * FROM users"
}

Nachrichtentypen

Query-Anfrage

{
  "type": "query",
  "id": "123",
  "sql": "SELECT * FROM users"
}

Query-Antwort

{
  "type": "result",
  "id": "123",
  "data": [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
  ]
}

Fehlerantwort

{
  "type": "error",
  "id": "123",
  "error": {
    "code": "INVALID_QUERY",
    "message": "Syntax error"
  }
}

Subscription

Änderungen abonnieren:

{
  "type": "subscribe",
  "id": "sub1",
  "table": "users"
}

Push-Benachrichtigung

Server-Push:

{
  "type": "push",
  "table": "users",
  "action": "insert",
  "data": {"id": 3, "name": "Charlie"}
}

JavaScript-Client

class BaraDBClient {
  constructor(url) {
    this.ws = new WebSocket(url);
    this.pending = new Map();
  }

  query(sql) {
    return new Promise((resolve, reject) => {
      const id = crypto.randomUUID();
      this.pending.set(id, { resolve, reject });
      this.ws.send(JSON.stringify({ type: 'query', id, sql }));
    });
  }
}