Проксигоор дамжуулан WebSocket Ping ба TCP Keepalive
Програмын зам хариулж байгаагийн баталгаа гэж амьд TCP socket-ийг үзэхийн оронд WebSocket хамтрагчийн амьд байдлын шалгалтыг сонго.
Амьд TCP socket, хариу үйлдэл үзүүлж буй WebSocket хамтрагч, програмын ашигтай ахиц зэрэг нь өөр өөр ажиглалт юм:
| Баталгаа | Юуг тогтоодог |
|---|---|
| TCP түвшний амьд байдал | Шалгасан тээврийн зам тэр түвшинд хариулдаг |
| Тохирох WebSocket Pong | Хамтрагч тэр хяналтын фреймд хариулсан |
| Програмын баталгаажуулалт | Програм өөрийн протоколын дагуу үйлдлийг баталгаажуулсан |
Дамжуулах прокси нь ихэвчлэн клиент ба хүлээн авагч тал руу тусдаа холболт хадгалдаг. Клиентийн TCP хамтрагч нь прокси бөгөөд байгуулагдсан tunnel доторх Ping нь WebSocket төгсгөлийн цэг хүртэл явдаг.
Тохирох Pong
Протокол нь хариу үйлдэл үзүүлэх Pong нь Ping-ийн програмын өгөгдлийг агуулахыг шаарддаг. Дуусаагүй шалгалтыг тодорхойлоход энэ тохирлыг ашигла. Хүсээгүй Pong зөвшөөрөгдөх боловч баталгаажуулалт шаарддаггүй; өгөгдлийн мессеж бүрийн дараа илгээх нь өөр баталгаа өгдөг.
Номын сан дэмждэг heartbeat механизмыг илүүд үз. Браузерын JavaScript-д оронд ньпрограмын heartbeat гэрээхэрэгтэй. Ажлын ачаалал ба сүлжээний бодлогод тохируулан интервал ба алдааны босгыг сонго. Хуваарийн завсарлага эсвэл хэт ачаалалтай event loop нь сүлжээ бүтэлгүйтсэнийг тогтоохгүйгээр хатуу босгыг алдаж болно.
Хүлээн авагчийг ажиллуул
Клиентэд хяналтын фреймүүдийг хүлээн авч боловсруулахад тасралтгүй I/O хэрэгтэй. Тэр механизмыг блоклох нь дотоод нөөцийн хомсдолыг тасалдал мэт харагдуулж болно.
Ping нь tunnel-ийн урсгал үүсгэдэг ч өөрийн idle бодлогыг юу хангахыг зуучлагч бүр өөрөө шийддэг. Ямар ч heartbeat нь холболтын үнэмлэхүй насны хязгаараас хамгаалалтыг баталгаажуулдаггүй.
Хамтрагчийн програм шинэчлэлт үйлдэхээ болих үед ч Ping-д хариулж болох бөгөөд чимээгүй захиалга эрүүл байж болно. Хоёулаа чухал үед сүүлийн хүчинтэй Pong ба утга учиртай програмын үйл явдлыг тусад нь хяна. Алдаа гарвал маршрут, өнгөрсөн хугацаа, дуусаагүй шалгалтыг хадгалаад дэмжигдсэн амьдралын мөчлөгөөр хаа эсвэл сэргээ.