T,.&T,,.&T,,,.TOGETHERSYSTEMS. INTERNATIONAL TTT T,.&T,,.T,,,.(C) (+31) - ( 613 803 782.) https://orcid.org/0009-0003-1328-2430

Hilfe zum Online-Portal & Live-Signaling

Diese Seite erklärt die öffentliche Portal-Ansicht manifest-portal.html und wie du sie mit deinem Offline-Manifest und optional mit einem eigenen Signaling-Server (WSS) verbindest.

1. Öffentliche Ansicht vs. verifizierte Nutzer

Das Online-Portal kennt zwei Zustände:

Die Verifikation läuft über einen Hash in der URL:

#mot=DEIN-TOKEN&ts=ZEITSTEMPEL&sig=HMAC-SIGNATUR

Das Portal prüft:

Erst dann wird der Zustand „verifiziert“ aktiviert und Live-Funktionen können freigeschaltet werden.

2. Daten laden: JSON & API

Rechts im Portal findest du den Block „Daten laden“ mit:

Die API-Struktur sollte kompatibel sein mit der JSON-Struktur des Offline-Manifestes (also ein Objekt mit posts-Array oder direkt ein passendes Objekt).

3. Live-Funktionen & Signaling-Server (WSS)

Der Abschnitt „Live-Funktionen (für verifizierte Nutzer)“ listet mögliche Echtzeitfunktionen:

Technisch brauchst du dafür einen Signaling-Server, der über eine wss://-Adresse erreichbar ist. Im Portal gibt es dafür das Feld Signaling URL (wss://...) und den Button Live initialisieren.

Beispiele für Signaling-Optionen:

Beispiel-Konfiguration (vereinfacht):\n Signaling URL: wss://signaling.deine-seite.tld\n Raum-ID: wird aus dem Manifest (z.B. Post-ID) abgeleitet\n Nachrichtenformat: { type: "offer" | "answer" | "candidate", roomId, payload }

Wichtig: Die aktuelle Demoversion zeigt beim Initialisieren nur einen Hinweis-Dialog. Die eigentliche WebRTC-/Chat-Logik musst du serverseitig und ggf. clientseitig ergänzen.

4. TDL / Raum-Definitionen – wie strukturiere ich meine Live-Räume?

Viele Systeme benutzen eine Art Task / Room Definition Language (TDL) – also Regeln, wie ein Raum oder eine Aufgabe beschrieben wird. Für dieses Portal kannst du dir z. B. folgendes Vorgehen merken:

Beispiel-JSON für eine Raumdefinition:\n {\n \t"type": "contract-signing",\n \t"roomId": "post-12345",\n \t"participants": [\n \t\t{"role":"initiator","id":"userA"},\n \t\t{"role":"signer","id":"userB"}\n \t],\n \t"permissions": {\n \t\t"uploadSignedPdf": ["initiator","signer"],\n \t\t"chat": ["initiator","signer"],\n \t\t"viewOnly": ["observer"]\n \t}\n }

Solche Strukturen können vom Signaling-Server ausgewertet werden, um zu entscheiden, welche Benutzer was tun dürfen. Die App selbst ist dafür vorbereitet, aber die konkrete Logik musst du in deinem Backend implementieren.

5. Woher bekomme ich die benötigten Backend-Bausteine?

Du brauchst drei Komponenten:

Die App selbst zwingt dich zu nichts davon – sie gibt dir nur die Felder (API-URL, Signaling-URL), in die du deine eigene Infrastruktur einträgst.

6. Kurzfassung für Nicht-Techniker:innen