WebSocket Ping супраць TCP Keepalive праз проксі
Выбірайце праверку жыццяздольнасці WebSocket-партнёра, а не лічыце жывы TCP-сокет доказам таго, што шлях прыкладання адказвае.
Жывы TCP-сокет, партнёр WebSocket, які адказвае, і карысны прагрэс прыкладання — гэта розныя назіранні:
| Доказ | Што ён устанаўлівае |
|---|---|
| Жыццяздольнасць на ўзроўні TCP | Правераны шлях транспарту адказвае на гэтым узроўні |
| Адпаведны WebSocket Pong | Партнёр адказаў на гэты кіраўнічы кадр |
| Пацверджанне прыкладання | Прыкладанне пацвердзіла аперацыю па сваім пратаколе |
Прамы проксі звычайна трымае асобныя злучэнні для кліента і для пункту прызначэння. TCP-партнёрам кліента з'яўляецца проксі, а Ping унутры ўсталяванага тунеля ідзе да канчатковай кропкі WebSocket.
Адпаведны Pong
Пратакол патрабуе, каб адказны Pong пераносіў даныя прыкладання з Ping. Выкарыстоўвайце гэтую адпаведнасць, каб вызначыць незавершаную праверку. Незапытаны Pong дапушчальны, але ён не запытвае пацверджання; адпраўка пасля кожнага паведамлення з данымі дае іншыя доказы.
Аддавайце перавагу падтрыманаму бібліятэкай механізму пульсу. JavaScript у браўзеры патрабуе замест гэтага кантракт пульсу на ўзроўні прыкладання. Выбірайце інтэрвалы і парогі збояў зыходзячы з нагрузкі і сеткавай палітыкі. Паўзы планавання або перагружаны цыкл падзей могуць прапусціць агрэсіўны парог, не даказаўшы збой сеткі.
Трымайце прыёмнік працуючым
Кліенту патрэбны бесперапынны ўвод-вывад, каб атрымліваць і апрацоўваць кіраўнічыя кадры. Блакіроўка гэтага механізму можа стварыць уражанне збою пры мясцовым галаданні.
Ping стварае тунельны трафік, але кожны пасярэднік сам вырашае, што задавальняе яго палітыку простаю. Ні адзін пульс не гарантуе абароны ад абсалютнага абмежавання часу жыцця злучэння.
Партнёр можа адказваць на Ping, нават калі яго прыкладанне перастала ствараць абнаўленні, і ціхая падпіска можа быць здаровай. Адсочвайце апошні сапраўдны Pong і значную падзею прыкладання асобна, калі важныя абодва. Пры збоі захавайце маршрут, прайшоўшы час і незавершаную праверку, затым зачыніце або аднавіце праз падтрыманы жыццёвы цыкл.