Tinklo skydelį atidarykite prieš įkeldami pokalbių puslapį, tada suraskite užklausą, kuri perneša pranešimus, o ne tą, kuri nupiešia puslapio karkasą. Dokumentas, scenarijai, prisijungimo mainai ir pokalbių transportas gali keliauti į skirtingus hostus. Dauguma pranešimų, kad VPN sugadino pokalbius, iš tikrųjų aprašo vienos iš tų keturių užklausų nesėkmę. Stebėkite jas iš eilės ir atsakymas paprastai matomas per pirmas dvi minutes.

Raskite užklausą, kuri perneša pranešimus

Puslapiui nusistovėjus filtruokite pagal tipą: WebSocket rodomas kaip atskiras įrašas, įvykių srautas lieka atidarytas su augančiu atsakymu, o ilga apklausa kartojasi pastoviu intervalu. Užrašykite schemą, hostą, portą ir būseną tam įrašui, kuris perneša atnaujinimus. Pažymėkite, ar jis prasidėjo prieš prisijungimą, ar po jo, nes transportas, atidarytas prieš autentifikaciją, paprastai yra kitokios konstrukcijos nei atidarytas po jos. Skaitykite užklausos antraštes, skirtas atnaujinimo užklausai arba priimtam turinio tipui, nes jos parodo, kokį transportą iš tiesų pasirinko įdiegtas puslapis.

Seni forumo įrašai aprašo transportą, kurio produktai atsisakė prieš daugelį metų, todėl pasitikėkite tuo, ką užfiksavo naršyklė, o ne straipsniu. Jei įrašo visai nėra, kliento kodas galėjo net nebandyti jungtis, o tai rodo ankstesnį scenarijaus ar konfigūracijos gedimą. Puslapio įkėlimas įrodo tik tai, kad dokumentas atėjo, ir būtent šis skirtumas nulemia, ar jūs apskritai derinate tinklą.

Sąranka, pristatymas ir gyvavimo trukmė genda skirtingai

WebSocket atsidaro HTTP atnaujinimu, į kurį atsakoma būsena 101, o visa, kas po to, yra į rėmus sudėti pranešimai, o ne puslapių parsisiuntimas; šiuos du etapus RFC 6455 aiškiai skiria. Įvykių srautas atsako srautinio turinio tipu ir laiko atsakymo turinį atidarytą. Abu gali neatsidaryti, atsidaryti ir nieko nepristatyti arba atsidaryti, pristatyti ir tada tyliai mirti.

wscat -c wss://chat.example.com/socket -H "Origin: https://chat.example.com"
curl -N -H "Accept: text/event-stream" https://chat.example.com/events

Pagaukite pirmą reikšmingą gedimą prieš liesdami profilį, nes trys laiko momentai rodo skirtingus sluoksnius. Jei rankos paspaudimas niekada nebaigiamas, palyginkite jį su paprasta HTTPS užklausa tam pačiam hostui ir pažiūrėkite, ar kas nors jį pasiekia. Jei baigiamas, o pranešimai neateina, stebėkite rėmus arba srauto turinį, kol kas nors siunčia bandomąjį pranešimą iš kitos paskyros. Jei veikia ir tada sustoja, užrašykite tikslų laiką ir uždarymo kodą, nes ši pora parodo, kuris galas pasidavė.

Kodas 1006 reiškia, kad lizdas buvo uždarytas be uždarymo rėmo, ir būtent taip tarpinė įranga arba neveiklumo skirtasis laikas atrodo iš naršyklės vidaus. VPN širdies plakimas neįrodo, kad vidinė programos sesija dar gyva.

Tiesioginis hostas yra atskiras tikslas

Pokalbių serverinė dalis dažnai veikia savo hosto vardu, kartais kitame porte ar už atskiro sertifikato. Tam tikslui reikia savo sprendimo, maršruto ir tarpinio serverio apdorojimo, o skaidytas tunelis gali įtraukti puslapį ir išskirti lizdą. Išspręskite tiesioginio hosto vardą kliento mašinoje ir patvirtinkite, kad jis atsako tuo adresu, kurio tikitės tame tinkle. Sertifikatų grandinę patikrinkite būtent tam hosto vardui, nes pakaitos simbolis, apimantis svetainę, ne visada apima lizdo galinį tašką.

Jei kelyje yra tarpinis serveris, patvirtinkite, kad jis leidžia atnaujinimą ar ilgai trunkantį atsakymą, o ne kaupia jį buferyje. Įmonių tarpiniai serveriai, perrašantys HTML, dažnai blogai apdoroja WebSocket atnaujinimus, todėl puslapis nupiešiamas, o pokalbiai taip ir neprisijungia. Todėl dvi užklausos tam pačiam produktui nėra dvi užklausos tam pačiam hostui.

Taisykite paskirties sąrašą, o ne saugumo patikras

Paskirties sąrašo taisymas yra maršruto pakeitimas ir priklauso maršruto savininkui. Sertifikato patikros sušvelninimas arba Origin antraštės pašalinimas yra saugumo pakeitimas ir priklauso politikos savininkui, o tai retai būna žmogus, derinantis bilietą. Greičiausias būdas padaryti, kad ryšys atrodytų veikiantis, paprastai yra greičiausias būdas padaryti incidentą įmanomą.

Prieš ką nors keisdami paklauskite programos savininko, kokius kilmės adresus priima serverinė dalis, ir perduokite tą atsakymą tam, kas valdo tarpinį serverį. Jei sertifikato klaida atsiranda tik per tunelį, tikrinkite perimantį įrenginį, o ne įdiekite apėjimą.

Užfiksuokite tiek, kad būtų galima perduoti

Naudingas artefaktas trumpas: puslapio URL, tiesioginis galinis taškas, rankos paspaudimo rezultatas, pirmo gedimo laikas ir ar buvo bandoma jungtis iš naujo. Pridėkite VPN profilio pavadinimą ir tinklą, kuriame buvote, ir kiekvienas skaitytojas galės atkartoti testą neklausdamas šešių klausimų. Užtušuokite slapukus, autorizacijos antraštes ir pranešimų turinį, o vietoj viso archyvo eksporto rinkitės laiko stulpelio ekrano kopiją. Rėmuose ir tinklo archyvuose gali būti privačių pranešimų ir sesijos žetonų, todėl prieš ką nors pridėdami patikrinkite.

Jei gedimas yra tylus uždarymas, įtraukite uždarymo kodą ir neveiklumo intervalą prieš jį, nes ši pora paprastai nurodo laiko limito savininką. Perduokite įrašą programos arba šliuzo savininkui, o ne spėliokite laiko limito reikšmę patys. Jų atsakymas apie palaikomą keepalive elgseną yra tas, kuris uždaro bilietą.

Susiję straipsniai