פעימות לב של WebSocket בדפדפן דורשות פרוטוקול יישום
תכננו פעימת לב יישומית מוסכמת כאשר JavaScript בדפדפן אינו יכול לשלוח ישירות מסגרות WebSocket Ping.
ל-API של WebSocket בדפדפן יש send(). הוא אינו חושף מתודת ping() כללית שתאפשר ל-JavaScript לשלוח מסגרות Ping של הפרוטוקול.
אם היישום שלכם שולח הודעת טקסט כמו {"type":"heartbeat"}, אלה נתוני יישום. השרת חייב להבין את ההודעה ולהגדיר תגובה. שרת שאינו מיישם את החוזה הזה אינו חייב להשיב ב-Pong של הפרוטוקול רק מפני שהטקסט מכיל את המילה ping.
הגדירו מה משמעותה של אישור, כיצד היא מזהה את פעימת הלב הממתינה ומתי אישור ישן מגיע מאוחר מדי. שמרו זאת בנפרד מאישור של פעולה עסקית.
גם לטיימר של JavaScript יש מגבלות תזמון. לשוניות ברקע ותהליכים ראשיים עמוסים עלולים לעכב קריאות חוזרות. אל תפרשו גבול טיימר מדויק שהוחמץ כהוכחה חותכת לכך שהפרוקסי הפסיק להעביר.
הדפדפן יכול לטפל במסגרות בקרה של הפרוטוקול באופן פנימי, אך הדבר אינו נותן לקוד היישום תצוגה ניידת של כל Ping או Pong. אם העמוד זקוק להחלטת חיות משלו, השתמשו בחוזה יישום מפורש ובמדיניות התאוששות.
שקע שה-readyState שלו הוא OPEN נחשב פתוח מקומית; זו אינה מדידה עצמאית לכך שהיישום המרוחק עיבד את הודעתכם האחרונה. השתמשו בראיות המתאימות לשאלה שאתם באמת צריכים להשיב עליה.