Ta yaya za a taimaka?

A taƙaita batun; za a tuntube ku ta imel.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Komawa shafin farko

Přenos: WebSocket, záloha přes HTTP a opětovné připojení

Jak widget komunikuje se serverem chatu – adresy, podprotokol rc.v1, formát rámců, chybové kódy a kódy uzavření, limity, opětovné připojení se seq a deduplikací a záloha přes HTTP pomocí Server-Sent Events a long pollingu.

Tato stránka popisuje, co se děje mezi widgetem v prohlížeči a serverem chatu. Potřebujete ji při řešení problémů (karta síťových požadavků ve vývojářských nástrojích), pro pravidla proxy a firewallu a pro svou Content Security Policy.

Důležité: komunikační protokol je rozhraním mezi naším widgetem a naším serverem. Vlastní klienti komunikující přímo tímto protokolem nejsou oficiálně podporováni; pole se mohou v rámci verze protokolu 1 rozšiřovat. Pro vlastní rozhraní použijte JavaScript API, pro serverová propojení webhooky a serverové API.

Adresy

Jak widget zjistí adresu WebSocket:

  1. data-rc-ws-url na značce načítacího skriptu, window.ReactiveChatSettings.wsUrl nebo ReactiveChat('boot', { wsUrl }) – pokud je hodnota nastavena, použije se.
  2. Jinak se odvodí z umístění loader.js: wss://ws. + poslední dvě části domény + /rc_wss/. Z cdn.reactive.chat vznikne wss://ws.reactive.chat/rc_wss/.

Z toho vyplývají dvě úskalí:

Cesta WebSocket nevyhodnocuje parametry dotazu.

Navázání spojení

Formát rámce

Každá zpráva v obou směrech má tento tvar:

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

Neznámé typy a neznámá pole se tiše ignorují – tím zůstávají starší widgety kompatibilní s novějšími servery.

Přehled typů zpráv

Z widgetu na server:

Ze serveru do widgetu:

Chybové kódy

Chyba přijde jako rámec t: "error" s d.code, d.message (anglicky, pouze pro vývojáře), d.retry (no, immediate, backoff, after_reinit) a podle potřeby d.retry_after_ms a d.detail. Seznam je uzavřený; neznámý kód se zpracuje jako internal.

Kódy uzavření

Limity na spojení

Server odesílá závazné hodnoty v init_ok.limits a init_ok.features:

Opětovné připojení, pořadí, duplicity

Záloha přes HTTP

Pokud síť nepropustí WebSocket, chat pokračuje přes běžné požadavky HTTPS – se stejnými rámci a stejnými limity. Používá ji pouze widget; rozhraní operátora se vždy připojuje přes WebSocket. Stručná verze pro redaktory je v části Záloha přes HTTP.

Kdy se použije:

Bez fetch v prohlížeči záloha neexistuje. Pokud vypadne existující spojení WebSocket, widget se znovu připojí přes WebSocket. Po přechodu na zálohu jednou na stránku tiše ověří, zda už WebSocket projde; pokud ano, smaže rc_http a další stránka opět použije WebSocket.

Požadavky (pod https://ws.reactive.chat/rc_wss/h/):

Widget nejprve zkusí SSE; pokud do 5 sekund nepřijde první rámec (například kvůli bufferování proxy), přejde na long polling. Chyby jako 404 (unbekannt), 403, 413 nebo 429 považuje za výpadek spojení a opakuje pokus s prodlevou. Po 60 sekundách bez požadavku server spojení uzavře. CORS: Access-Control-Allow-Origin odráží origin, bez přihlašovacích údajů; kontrola originu probíhá v init, stejně jako u WebSocket.

Požadavky na vaší straně:

Uloženo v prohlížeči: pouze záznam rc_http v sessionStorage s časem připojení HTTPS, bez osobních údajů.

Která cesta je aktivní

Na kartě síťových požadavků ve vývojářských nástrojích:

Dále: Limity a kvóty · Řešení problémů

An sabunta ta ƙarshe: