WebSocket API у браўзеры мае send(). Ён не прадстаўляе агульнага метаду ping(), якім JavaScript мог бы адпраўляць кадры пратаколу Ping.

Калі ваша праграма адпраўляе тэкставае паведамленне, напрыклад {"type":"heartbeat"}, гэта прыкладныя даныя. Сервер павінен разумець паведамленне і вызначыць адказ. Сервер, які не рэалізуе гэтую дамову, не абавязаны адказваць пратакольным Pong толькі таму, што ў тэксце ёсць слова ping.

Вызначце, што азначае пацвярджэнне, як яно ідэнтыфікуе чаканы сігнал і калі старое пацвярджэнне прыходзіць запозна. Трымайце гэта асобна ад пацвярджэння бізнес-аперацыі.

Таймер JavaScript таксама мае абмежаванні планавання. Фонавыя ўкладкі і занятыя асноўныя патокі могуць затрымліваць зваротныя выклікі. Не тлумачце прапушчаную дакладную мяжу таймера як пераканаўчы доказ таго, што проксі перастаў перасылаць.

Браўзер можа апрацоўваць кіруючыя кадры пратаколу ўнутры, але гэта не дае прыкладному коду пераноснага выгляду кожнага Ping або Pong. Калі старонцы патрэбна ўласнае рашэнне пра жыццяздольнасць, выкарыстоўвайце яўную прыкладную дамову і палітыку аднаўлення.

Сокет, у якога readyState роўны OPEN, лічыцца адкрытым лакальна; гэта не незалежнае вымярэнне таго, што далёкая праграма апрацавала ваша апошняе паведамленне. Выкарыстоўвайце тыя доказы, якія адпавядаюць пытанню, на якое вам трэба адказаць.

Падобныя артыкулы