ΑρχικήΤεκμηρίωσηRealtime & Soketi
WebSocket Integration

Realtime & Soketi

Ρυθμίστε real-time updates, private channels, tenant authorization και reconnect behavior χωρίς έκθεση secrets στο frontend.

WebSocketsPrivate channelsTenant checksReconnect
Realtime architecture

Πώς λειτουργεί

Client

Browser connection

Ο browser συνδέεται με public app key, host και TLS settings.

Auth

Private channel authorization

Το WordPress ελέγχει user, tenant και channel πριν υπογράψει subscription.

Server

Event publishing

Μόνο server-side code χρησιμοποιεί secret για publish.

Fallback

Reconnect και offline state

Η εφαρμογή χειρίζεται προσωρινή αποσύνδεση χωρίς απώλεια βασικής λειτουργίας.

Configuration

Ρύθμιση βήμα-βήμα

1

Δημιουργήστε app credentials

App ID, key, secret και cluster/host στο Soketi environment.

2

Ρυθμίστε host, port και TLS

Σε production χρησιμοποιήστε ασφαλή WebSocket σύνδεση.

3

Αποθηκεύστε το secret server-side

Το secret δεν εμφανίζεται σε JavaScript ή HTML source.

4

Υλοποιήστε private auth endpoint

Ελέγξτε nonce/session, role και tenant πριν την υπογραφή.

5

Δοκιμάστε reconnect

Offline/online transition, expired session και πολλαπλά tabs.

Security

Tenant isolation στα channels

  • Τα channel names περιλαμβάνουν μη προβλέψιμο ή ελεγχόμενο tenant context.
  • Ο client δεν αποφασίζει μόνος του σε ποιο tenant ανήκει.
  • Το auth endpoint επιβεβαιώνει membership και capability.
  • Το server secret δεν εκτίθεται ποτέ στο frontend.
  • Τα payloads περιέχουν μόνο όσα απαιτούνται για UI update.
Μην δημοσιεύετε πλήρη κλινικά records μέσω WebSocket.

Στείλτε event identifiers ή ελάχιστα UI-safe δεδομένα και ανακτήστε τα υπόλοιπα μέσω εξουσιοδοτημένου API.

Testing

Σενάρια δοκιμών

ΣενάριοΑναμενόμενο αποτέλεσμα
Authorized doctorΣυνδέεται μόνο στα επιτρεπτά private channels.
SecretaryΛαμβάνει μόνο λειτουργικά events.
Wrong tenantAuthorization denied.
Expired sessionReconnect αποτυγχάνει μέχρι νέα authentication.
Server restartΟ client επανασυνδέεται χωρίς duplicate listeners.
FAQ

Συχνές ερωτήσεις

Γιατί ο client συνδέεται αλλά δεν λαμβάνει events;

Ελέγξτε channel name, auth response, publish credentials, event name και frontend listener.

Μπορεί να λειτουργεί χωρίς realtime;

Η βασική εφαρμογή πρέπει να διαθέτει fallback μέσω refresh ή polling όπου είναι πρακτικά αναγκαίο.

Επόμενος οδηγός

Επιστροφή στην τεκμηρίωση

Συνεχίστε τη ρύθμιση του Nutrition Hub με τη σωστή σειρά.