Желі тақтасын чат бетін жүктемес бұрын ашыңыз, содан кейін беттің қаңқасын салатын сұрауды емес, хабарламаларды тасымалдайтын сұрауды табыңыз. Құжат, скрипттер, кіру кезіндегі айырбас және чат тасымалы әртүрлі хосттарға кетуі мүмкін. VPN чатты бұзды деген хабарламалардың көбі шын мәнінде осы төрт сұраудың біреуінің сәтсіздігін сипаттайды. Оларды ретімен бақылаңыз, жауап әдетте алғашқы екі минутта көрінеді.

Хабарламаларды тасымалдайтын сұрауды табыңыз

Бет орныққан соң түрі бойынша сүзіңіз: WebSocket жеке жазба ретінде көрінеді, оқиға ағыны өсіп келе жатқан жауаппен ашық тұрады, ал ұзақ сұрау белгілі бір аралықпен қайталанады. Жаңартуларды тасымалдайтын жазба үшін схеманы, хостты, портты және мәртебені жазып алыңыз. Қосылым кіруге дейін немесе кейін басталғанын белгілеңіз, өйткені аутентификацияға дейін ашылған тасымал әдетте одан кейін ашылғаннан басқа құрылым. Жаңарту сұрауының немесе қабылданған контент түрінің сұрау тақырыптарын оқыңыз, өйткені олар орналастырылған беттің шынымен таңдаған тасымалын көрсетеді.

Ескі форум жазбалары өнімдер көп жыл бұрын қолдануды тоқтатқан тасымалдарды сипаттайды, сондықтан мақалаға емес, браузер жазғанға сеніңіз. Егер жазба мүлдем жоқ болса, клиент коды қосылымды мүлдем көрмеген болуы мүмкін, бұл неғұрлым ерте скрипт немесе конфигурация ақауына нұсқайды. Беттің жүктелуі тек құжаттың жеткенін дәлелдейді, ал бұл айырма желіні шынымен жөндеп жатқаныңызды анықтайды.

Орнату, жеткізу және өмір сүру мерзімі әртүрлі бұзылады

WebSocket 101 мәртебесімен жауап беретін HTTP жаңартуымен ашылады, ал одан кейінгінің бәрі бетті жүктеу емес, кадрланған хабарламалар; бұл екі кезеңді 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 жүрек соғысы ішкі қолданба сессиясының әлі тірі екенін дәлелдемейді.

Тірі хост - бөлек баратын мекен

Чат бэкендтері жиі өз хост атында тұрады, кейде басқа портта немесе бөлек сертификаттың артында. Бұл мекенге өз шешімі, бағыты және прокси өңдеуі қажет, ал бөлінген туннель бетті қосып, сокетті шығарып тастауы мүмкін. Тірі хост атын клиент машинасынан шешіп, сол желіде күткен мекенжаймен жауап беретінін растаңыз. Сертификат тізбегін дәл сол хост аты үшін тексеріңіз, өйткені сайтты қамтитын wildcard сокеттің соңғы нүктесін әрдайым қамти бермейді.

Жолда прокси болса, оның буферлеу орнына жаңартуға немесе ұзақ өмір сүретін жауапқа рұқсат беретінін растаңыз. HTML-ді қайта жазатын корпоративтік проксилер WebSocket жаңартуларын жиі нашар өңдейді, нәтижесінде бет салынады, ал чат ешқашан қосылмайды. Сондықтан бір өнімге екі сұрау - бір хостқа екі сұрау емес.

Бағытталу тізімін түзетіңіз, қауіпсіздік тексерістерін емес

Бағытталу тізімін түзету - маршруттың өзгерісі және маршрут иесіне тиесілі. Сертификат тексеруін әлсірету немесе Origin тақырыбын алып тастау - қауіпсіздік өзгерісі және саясат иесіне тиесілі, ал ол сирек билетті жөндеп жатқан адам болады. Қосылымды көрінетін етудің ең жылдам жолы әдетте оқиғаны мүмкін етудің ең жылдам жолы.

Бірдеңені өзгертпес бұрын бэкенд қандай origin қабылдайтынын қолданба иесінен сұрап, бұл жауапты проксиді басқаратын адамға жеткізіңіз. Сертификат қатесі тек туннель арқылы көрінсе, айналып өтуді орнатпай, кедергі жасап тұрған құрылғыны тексеріңіз.

Тапсыруға жеткілікті жазба қалдырыңыз

Пайдалы артефакт қысқа: беттің URL-і, тірі соңғы нүкте, қол алысу нәтижесі, алғашқы ақау уақыты және қайта қосылу әрекеті жасалған-жасалмағаны. VPN профилінің атауын және қай желіде болғаныңызды қосыңыз, сонда кез келген оқырман алты сұрақ қоймай-ақ тесті қайталай алады. Cookie файлдарын, авторизация тақырыптарын және хабарлама денелерін жасырыңыз, ал толық мұрағат экспортынан гөрі уақыт бағанының скриншотын таңдаңыз. Кадрлар мен желілік мұрағаттар жеке хабарламалар мен сессия токендерін қамтуы мүмкін, сондықтан бірдеңені тіркемес бұрын тексеріңіз.

Егер ақау үнсіз жабылу болса, жабу кодын және оның алдындағы бос тұру аралығын қосыңыз, өйткені бұл жұп әдетте таймаут иесін анықтайды. Жазбаны қолданба немесе шлюз иесіне тапсырыңыз, таймаут мәнін өзіңіз болжамаңыз. Олардың қолдау көрсетілетін keepalive тәртібі туралы жауабы билетті жабатын жауап.

Қатысты мақалалар