Բրաուզերի WebSocket API-ն ունի send()։ Այն չի տրամադրում ընդհանուր ping() մեթոդ, որպեսզի JavaScript-ը կարողանա ուղարկել արձանագրության Ping շրջանակներ։

Եթե ձեր հավելվածն ուղարկում է տեքստային հաղորդագրություն, օրինակ՝ {"type":"heartbeat"}, դա կիրառական տվյալ է։ Սերվերը պետք է հասկանա հաղորդագրությունը և սահմանի պատասխան։ Սերվերը, որը չի իրականացնում այդ պայմանագիրը, պարտավոր չէ պատասխանել արձանագրության Pong-ով միայն այն պատճառով, որ տեքստում կա ping բառը։

Սահմանեք, թե ինչ է նշանակում հաստատումը, ինչպես է այն նույնականացնում սպասող սրտի զարկը և երբ հին հաստատումը չափազանց ուշ է։ Այն առանձին պահեք գործարար գործողության հաստատումից։

JavaScript-ի ժամաչափը նույնպես ունի ժամանակացույցի սահմանափակումներ։ Ֆոնային ներդիրները և զբաղված հիմնական հոսքերը կարող են ուշացնել հետկանչերը։ Բաց թողնված ճշգրիտ ժամաչափի սահմանը մի մեկնաբանեք որպես վճռական ապացույց, որ փրոքսին դադարել է փոխանցել։

Բրաուզերը կարող է ներքին մակարդակով մշակել արձանագրության կառավարման շրջանակները, սակայն դա կիրառական կոդին տեղափոխելի պատկերացում չի տալիս յուրաքանչյուր Ping-ի կամ Pong-ի մասին։ Եթե էջին անհրաժեշտ է սեփական կենսունակության որոշում, օգտագործեք հստակ կիրառական պայմանագիր և վերականգնման քաղաքականություն։

Այն սոքեթը, որի readyState-ը OPEN է, տեղային համարվում է բաց; դա անկախ չափում չէ, որ հեռավոր հավելվածը մշակել է ձեր վերջին հաղորդագրությունը։ Օգտագործեք այն ապացույցը, որը համապատասխանում է այն հարցին, որին իրականում պետք է պատասխանեք։

Առնչվող հոդվածներ