Πώς μπορούμε να βοηθήσουμε;

Περιγράψτε σύντομα το θέμα – θα σας απαντήσουμε με email.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Στην αρχική σελίδα

Trasporto: WebSocket, fallback HTTP e riconnessione

Come il widget comunica con il server della chat: indirizzi, sottoprotocollo rc.v1, formato delle trame, codici di errore e chiusura, limiti, riconnessione con seq e deduplicazione e fallback HTTP tramite Server-Sent Events e long polling.

Questa pagina descrive ciò che avviene tra il widget nel browser e il server della chat. Serve per la risoluzione dei problemi (scheda Rete degli strumenti per sviluppatori), per le regole di proxy e firewall e per la Sua Content Security Policy.

Importante: il protocollo di comunicazione è l’interfaccia tra il nostro widget e il nostro server. I client personalizzati che usano direttamente il protocollo non sono ufficialmente supportati; i campi possono essere estesi nella versione 1 del protocollo. Per le Sue interfacce usi l’API JavaScript, per i collegamenti server i webhook e l’API server.

Indirizzi

Come il widget trova l’indirizzo WebSocket:

  1. data-rc-ws-url sul tag del caricatore, window.ReactiveChatSettings.wsUrl o ReactiveChat('boot', { wsUrl }): se impostato, si applica questo valore.
  2. Altrimenti viene ricavato dalla posizione di loader.js: wss://ws. + le ultime due componenti del dominio + /rc_wss/. cdn.reactive.chat diventa wss://ws.reactive.chat/rc_wss/.

Ne derivano due insidie:

Il percorso WebSocket non valuta i parametri della query.

Stabilire la connessione

Formato delle trame

Ogni messaggio in entrambe le direzioni ha questa forma:

{ "v": 1, "t": "msg", "id": "01JAB3C4D5E6F7G8H9JKMNPQRS", "ts": 1792500000000, "d": { } }

Tipi e campi sconosciuti vengono ignorati senza avviso: questo mantiene la compatibilità dei widget meno recenti con i server più recenti.

Tipi di messaggio a colpo d’occhio

Dal widget al server:

Dal server al widget:

Codici di errore

Un errore arriva come trama t: "error" con d.code, d.message (inglese, solo per sviluppatori), d.retry (no, immediate, backoff, after_reinit) e, se necessario, d.retry_after_ms e d.detail. L’elenco è chiuso; un codice sconosciuto viene trattato come internal.

Codici di chiusura

Limiti per connessione

Il server invia i valori vincolanti in init_ok.limits e init_ok.features:

Riconnessione, ordine, duplicati

Fallback HTTP

Se una rete non lascia passare un WebSocket, la chat prosegue tramite normali richieste HTTPS, con le stesse trame e gli stessi limiti. Lo usa solo il widget; l’interfaccia operatori si connette sempre via WebSocket. La versione breve per i redattori si trova in Fallback HTTP.

Quando si applica:

Senza fetch nel browser non c’è fallback. Se una connessione WebSocket esistente cade, il widget si riconnette via WebSocket. Dopo un fallback, verifica senza avvisi una volta per pagina se un WebSocket riesce ora a passare; in caso positivo elimina rc_http e la pagina successiva usa di nuovo WebSocket.

Le richieste (sotto https://ws.reactive.chat/rc_wss/h/):

Il widget prova prima SSE; se non arriva una prima trama entro 5 secondi (ad esempio perché un proxy usa buffering), passa al long polling. Tratta errori come 404 (unbekannt), 403, 413 o 429 come una connessione interrotta e riprova dopo un’attesa. Dopo 60 secondi senza richieste, il server chiude la connessione. CORS: Access-Control-Allow-Origin rispecchia l’origine, senza credenziali; la verifica dell’origine avviene in init, come per WebSocket.

Requisiti dal Suo lato:

Memorizzato nel browser: solo la voce rc_http in sessionStorage con l’ora della connessione HTTPS, senza dati personali.

Quale percorso è attivo

Nella scheda Rete degli strumenti per sviluppatori:

Prosegua: Limiti e quote · Risoluzione dei problemi

Τελευταία ενημέρωση: