Avaa verkko-paneeli ennen chat-sivun lataamista ja etsi sitten pyyntö, joka kuljettaa viestit, eikä se, joka piirtää kehyksen. Asiakirja, skriptit, kirjautumisvaihto ja chatin siirtotie voivat kaikki mennä eri isäntiin. Useimmat raportit siitä, että VPN rikkoi chatin, kuvaavat itse asiassa yhden näistä neljästä pyynnöstä epäonnistuvan. Seuraa niitä järjestyksessä, ja vastaus on yleensä näkyvissä kahden ensimmäisen minuutin aikana.

Etsi pyyntö, joka kuljettaa viestit

Suodata tyypin mukaan, kun sivu tasaantuu: WebSocket näkyy omana merkintänään, tapahtumavirta pysyy avoinna kasvavalla vastauksella ja pitkä kysely toistuu säännöllisin väliajoin. Kirjaa skeema, isäntä, portti ja tila sille, joka kuljettaa päivitykset. Huomaa, alkoiko se ennen vai jälkeen kirjautumisen, sillä ennen todennusta avattu siirtotie on yleensä eri suunnittelua kuin sen jälkeen avattu. Lue pyynnön otsakkeet päivityspyynnölle tai hyväksytylle sisältötyypille, sillä ne kertovat siirtotien, jonka käyttöön otettu sivu todella valitsi.

Vanhat foorumiviestit kuvaavat siirtoteitä, joiden käytön tuotteet lopettivat vuosia sitten, joten luota siihen, mitä selain tallensi, älä artikkeliin. Jos merkintä puuttuu kokonaan, asiakaskoodi ei ehkä koskaan yrittänyt yhteyttä, mikä viittaa aiempaan skripti- tai kokoonpanovirheeseen. Latautuva sivu todistaa vain, että asiakirja saapui, ja tämä ero ratkaisee, vianmääritätkö verkkoa lainkaan.

Asennus, toimitus ja elinikä epäonnistuvat eri tavoin

WebSocket avautuu HTTP-päivityksellä, johon vastataan tilalla 101, ja kaikki sen jälkeen on kehystettyjä viestejä sivujen noudon sijaan, kaksi vaihetta, jotka RFC 6455 pitää nimenomaisesti erillään. Tapahtumavirta vastaa striimaavalla sisältötyypillä ja pitää vastauksen rungon avoinna. Molemmat voivat epäonnistua avautumisessa, avautua ja olla toimittamatta mitään, tai avautua, toimittaa ja kuolla sitten hiljaa.

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

Tallenna ensimmäinen merkityksellinen epäonnistuminen ennen kuin kosket profiiliin, sillä kolme ajoitusta osoittavat eri kerroksiin. Jos kättely ei koskaan valmistu, vertaa sitä tavalliseen HTTPS-pyyntöön samaan isäntään nähdäksesi, pääseekö sinne ylipäänsä mitään. Jos se valmistuu eikä viestejä tule, tarkkaile kehyksiä tai virran runkoa, kun joku lähettää testiviestin toiselta tililtä. Jos se toimii ja sitten pysähtyy, kirjaa tarkka aika ja sulkemiskoodi, sillä se pari kertoo, kumpi pää luovutti.

Koodi 1006 tarkoittaa, että socket sulkeutui ilman sulkemiskehystä, mikä on välittäjän tai joutokäynnin aikakatkaisun näköistä selaimen sisältä. VPN:n sydämenlyönti ei todista, että sovelluksen sisäinen istunto on vielä elossa.

Reaaliaikainen isäntä on erillinen kohde

Chatin taustajärjestelmät asuvat usein omalla isäntänimellään, joskus eri portissa tai erillisen varmenteen takana. Tämä kohde tarvitsee oman ratkaisunsa, reittinsä ja välityspalvelinkäsittelynsä, ja jaettu tunnelointi voi sisällyttää sivun ja jättää socketin ulkopuolelle. Ratkaise reaaliaikainen isäntänimi asiakaskoneesta ja vahvista, että se vastaa sillä osoitteella, jota odotat kyseisessä verkossa. Tarkista varmentoketju nimenomaan kyseiselle isäntänimelle, sillä sivuston kattava jokerivarmenne ei aina kata socketin päätepistettä.

Jos polulla on välityspalvelin, vahvista, että se sallii päivityksen tai pitkäikäisen vastauksen sen puskuroimisen sijaan. HTML:ää uudelleenkirjoittavat yritysvälityspalvelimet käsittelevät WebSocket-päivitykset usein huonosti, mikä tuottaa sivun, joka renderöityy, mutta chat ei koskaan yhdistä. Kaksi pyyntöä samaan tuotteeseen ei siis ole kaksi pyyntöä samaan isäntään.

Korjaa kohdeluettelo, älä turvatarkistuksia

Kohdeluettelon korjaaminen on reititysmuutos ja kuuluu reitin omistajalle. Varmenteen validoinnin löysääminen tai Origin-otsakkeen poistaminen on turvallisuusmuutos ja kuuluu käytännön omistajalle, joka on harvoin tikettiä vianmäärittävä henkilö. Nopein tapa saada yhteys näkymään on yleensä nopein tapa tehdä tapaus mahdolliseksi.

Kysy sovelluksen omistajalta, mitkä alkuperät taustajärjestelmä hyväksyy, ennen kuin muutat mitään, ja välitä vastaus välityspalvelinta hallitsevalle. Jos varmentovirhe näkyy vain tunnelin kautta, tutki sieppaava laite sen sijaan että asentaisit ohituksen.

Kirjaa riittävästi luovutusta varten

Hyödyllinen artefakti on lyhyt: sivun URL, reaaliaikainen päätepiste, kättelyn tulos, ensimmäisen epäonnistumisen aika ja yritettiinkö uudelleenyhdistämistä. Lisää VPN-profiilin nimi ja verkko, jossa olit, ja kuka tahansa lukija voi toistaa testin kysymättä kuutta kysymystä. Peitä evästeet, valtuutusotsakkeet ja viestien rungot, ja suosi aikasarakkeen kuvakaappausta täyden arkistoviennin sijaan. Kehykset ja verkkoarkistot voivat sisältää yksityisiä viestejä ja istuntotunnuksia, joten tarkista ennen kuin liität mitään.

Jos epäonnistuminen on hiljainen sulkeutuminen, sisällytä sulkemiskoodi ja sitä edeltänyt joutokäyntiväli, sillä se pari tunnistaa yleensä aikakatkaisun omistajan. Luovuta tallenne sovelluksen tai yhdyskäytävän omistajalle sen sijaan että arvaisit aikakatkaisuarvon itse. Heidän vastauksensa tuetusta keepalive-käyttäytymisestä on se, joka sulkee tiketin.

Aiheeseen liittyvät artikkelit