Отворите панел мреже пре учитавања странице ћаскања, а затим пронађите захтев који носи поруке, а не онај који црта оквир странице. Документ, скрипте, размена при пријави и пренос ћаскања могу да иду на различите домаћине. Већина пријава да је VPN покварио ћаскање заправо описује неуспех једног од та четири захтева. Пратите их по реду и одговор је обично видљив у прва два минута.

Пронађите захтев који носи поруке

Филтрирајте по типу када се страница смири: WebSocket се појављује као посебан запис, ток догађаја остаје отворен са одговором који расте, а дуго анкетирање се понавља у правилном интервалу. Забележите шему, домаћина, порт и статус за онај који носи ажурирања. Означите да ли је почео пре или после пријаве, јер пренос отворен пре аутентификације обично је другачије конструкције од оног отвореног после ње. Читајте заглавља захтева за захтев надоградње или прихваћени тип садржаја, јер она одређују пренос који је постављена страница заиста изабрала.

Стари постови на форумима описују преносе које су производи напустили годинама раније, зато верујте ономе што је прегледач забележио, а не чланку. Ако запис потпуно недостаје, клијентски код можда никада није покушао везу, што указује на ранији неуспех скрипте или конфигурације. Учитавање странице доказује само да је документ стигао, и управо та разлика одлучује да ли уопште отклањате грешке на мрежи.

Подешавање, испорука и животни век отказују различито

WebSocket се отвара HTTP надоградњом на коју се одговара статусом 101, а све после тога су поруке у оквирима, а не преузимање страница; ове две фазе RFC 6455 јасно раздваја. Ток догађаја одговара стриминг типом садржаја и држи тело одговора отвореним. Оба могу да не отворе, отворе и ништа не доставе, или отворе, доставе и затим тихо умру.

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

Ухватите први значајан неуспех пре него што дотакнете профил, јер три тренутка указују на различите слојеве. Ако руковање никада не заврши, упоредите га са обичним HTTPS захтевом ка истом домаћину да видите да ли ишта стиже до њега. Ако се заврши а поруке не стижу, посматрајте оквире или тело тока док неко шаље пробну поруку са другог налога. Ако ради и затим стане, забележите тачно време и код затварања, јер тај пар одређује која страна је одустала.

Код 1006 значи да се сокет затворио без оквира за затварање, а тако посредник или тајмаут неактивности изгледа из унутрашњости прегледача. VPN откуцај не доказује да је унутрашња сесија апликације још жива.

Живи домаћин је одвојено одредиште

Позадине ћаскања често живе на сопственом имену домаћина, понекад на другом порту или иза одвојеног сертификата. То одредиште захтева сопствено разрешавање, маршруту и поступање са проксијем, а подељени тунел може да укључи страницу и искључи сокет. Разрешите име живог домаћина са клијентске машине и потврдите да одговара адресом коју очекујете на тој мрежи. Проверите ланац сертификата посебно за то име домаћина, јер џокер који покрива сајт не покрива увек крајњу тачку сокета.

Ако је на путу прокси, потврдите да дозвољава надоградњу или дуготрајан одговор уместо да га баферује. Корпоративни проксији који преписују HTML често лоше обрађују WebSocket надоградње, што даје страницу која се црта док се ћаскање никада не повеже. Два захтева ка истом производу зато нису два захтева ка истом домаћину.

Поправите листу одредишта, а не безбедносне провере

Поправка листе одредишта је промена рутирања и припада власнику маршруте. Ублажавање провере сертификата или уклањање заглавља Origin је безбедносна промена и припада власнику политике, који је ретко особа која отклања грешке на тикету. Најбржи начин да веза изгледа успешна обично је најбржи начин да инцидент постане могућ.

Питајте власника апликације које изворе позадина прихвата пре него што било шта промените, и предајте тај одговор ономе ко контролише прокси. Ако се грешка сертификата појављује само кроз тунел, прегледајте уређај који пресреће уместо да инсталирате заобилажење.

Забележите довољно за предају

Користан артефакт је кратак: URL странице, жива крајња тачка, резултат руковања, време првог неуспеха и да ли је покушано поновно повезивање. Додајте име VPN профила и мрежу на којој сте били, и свако ко то прочита може да понови тест без шест питања. Замаскирајте колачиће, заглавља ауторизације и тела порука, и радије изаберите снимак колоне са временима него пун извоз архиве. Оквири и мрежне архиве могу да садрже приватне поруке и токене сесије, зато прегледајте пре него што нешто приложите.

Ако је неуспех тихо затварање, укључите код затварања и интервал неактивности пре њега, јер тај пар обично одређује власника тајмаута. Предајте запис власнику апликације или мрежног пролаза уместо да сами погађате вредност тајмаута. Њихов одговор о подржаном понашању keepalive је онај који затвара тикет.

Повезани чланци