Hur kan vi hjälpa dig?

Beskriv kort vad det gäller, så återkommer vi via e-post.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Till startsidan

Transport: WebSocket, HTTP-reserv och återanslutning

Hur widgeten kommunicerar med chattservern – adresser, underprotokollet rc.v1, ramformat, fel- och stängningskoder, gränser, återanslutning med seq och deduplicering samt HTTP-reserven via Server-Sent Events och långpollning.

Den här sidan beskriver vad som händer mellan widgeten i webbläsaren och chattservern. Du behöver den för felsökning (nätverksfliken i utvecklarverktygen), proxy- och brandväggsregler samt din Content Security Policy.

Viktigt: överföringsprotokollet är gränssnittet mellan vår widget och vår server. Egna klienter som talar protokollet direkt stöds inte officiellt; fält kan utökas inom protokollversion 1. För egna gränssnitt använder du JavaScript-API:et, för serverkopplingar webhooks och server-API:et.

Adresser

Hur widgeten hittar WebSocket-adressen:

  1. data-rc-ws-url på laddartaggen, window.ReactiveChatSettings.wsUrl eller ReactiveChat('boot', { wsUrl }) – om det är angivet gäller det värdet.
  2. Annars härleds den från platsen för loader.js: wss://ws. + domänens sista två delar + /rc_wss/. cdn.reactive.chat blir wss://ws.reactive.chat/rc_wss/.

Det ger två fallgropar:

WebSocket-vägen utvärderar inga frågeparametrar.

Upprätta anslutningen

Ramformat

Varje meddelande i båda riktningarna har den här formen:

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

Okända typer och fält ignoreras utan felmeddelande – det gör äldre widgetar kompatibla med nyare servrar.

Meddelandetyper i överblick

Från widgeten till servern:

Från servern till widgeten:

Felkoder

Ett fel kommer som en ram t: "error" med d.code, d.message (engelska, bara för utvecklare), d.retry (no, immediate, backoff, after_reinit) och vid behov d.retry_after_ms och d.detail. Listan är sluten; en okänd kod behandlas som internal.

Stängningskoder

Gränser per anslutning

Servern skickar de bindande värdena i init_ok.limits och init_ok.features:

Återanslutning, ordning och dubbletter

HTTP-reserv

Om ett nätverk inte släpper igenom WebSocket fortsätter chatten via vanliga HTTPS-anrop – med samma ramar och gränser. Bara widgeten använder detta; agentgränssnittet ansluter alltid via WebSocket. Den korta versionen för redaktörer finns under HTTP-reserv.

När den används:

Utan fetch i webbläsaren finns ingen reserv. Om en befintlig WebSocket-anslutning bryts återansluter widgeten via WebSocket. Efter byte till reserven kontrollerar den diskret en gång per sida om WebSocket nu kommer igenom; om så är fallet raderar den rc_http och nästa sida använder WebSocket igen.

Anropen (under https://ws.reactive.chat/rc_wss/h/):

Widgeten försöker först med SSE; om ingen första ram kommer inom 5 sekunder (till exempel för att en proxy buffrar) växlar den till långpollning. Den behandlar fel som 404 (unbekannt), 403, 413 eller 429 som en bruten anslutning och försöker igen efter en väntetid. Efter 60 sekunder utan anrop stänger servern anslutningen. CORS: Access-Control-Allow-Origin speglar ursprunget, utan inloggningsuppgifter; ursprungskontrollen sker i init, som med WebSocket.

Krav på din sida:

Lagras i webbläsaren: bara posten rc_http i sessionStorage med tidpunkten för HTTPS-anslutningen, utan personuppgifter.

Vilken väg är aktiv

På nätverksfliken i utvecklarverktygen:

Nästa: Gränser och kvoter · Felsökning

Senast uppdaterad: