שימוש ב-WebSockets

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

במאמר הזה נסביר איך להשתמש ב-WebSockets עם Apigee ו-Apigee hybrid.

מבוא

יש הרבה מצבים שבהם האינטראקציות באינטרנט צריכות לקרות בזמן אמת, כמו משחקים, תקשורת, עסקאות פיננסיות ופעילויות אחרות שדורשות תפוקה גבוהה.

‫WebSocket הוא פרוטוקול שמספק ערוץ תקשורת דו-כיווני בין לקוח אינטרנט לבין שרת אינטרנט דרך חיבור TCP יחיד. פרוטוקול WebSocket משתמש בפרוטוקול HTTP כדי ליצור את החיבור בין הלקוח לבין השרת. אחרי שהחיבור נוצר, הלקוח והשרת משתמשים בפרוטוקול WebSocket כדי לשלוח ולקבל נתונים.

המפרט והפרוטוקול של WebSockets מתוחזקים על ידי W3C.

תמיכה ב-WebSockets ב-Apigee

ב-Apigee וב-Apigee Hybrid, קבוצות סביבתיות מספקות ניתוב לסביבות ומגדירות את שמות המארחים שבהם נחשפים שרתי proxy ל-API. קבוצות סביבתיות תומכות באופן מובנה בפרוטוקולים HTTP ו-WS. לא צריך ליצור קבוצה סביבתית מיוחדת או הגדרה מיוחדת כדי להשתמש ב-WebSockets.

הלקוח צריך לבקש שדרוג של הפרוטוקול מ-HTTP ל-WS על ידי הכללת כותרת הבקשה Upgrade. כשמבצעים בקשת שדרוג ל-proxy ל-API שמחובר ל-WebSocket backend תקין, היעד מחזיר תגובה 101 Switching Protocols. בקשות ותגובות נוספות מתבצעות באופן דו-כיווני בחיבור WebSocket הפתוח, עד שהוא נסגר.

תמיכה בנושאי מדיניות

כל כללי המדיניות יפעלו בשרת proxy של שקע אינטרנט עד לסיום הלחיצת יד (כלומר, עד שהתגובה HTTP 101 מוחזרת ללקוח). לאחר מכן, אף כלל מדיניות לא יופעל, אבל עדיין יכובדו אסימוני OAuth שאומתו לפני הלחיצת יד, והחיבור ינותק כשהתוקף של האסימון יפוג או שהוא יבוטל.

ביטול החיבור

החיבור ל-WebSockets נסגר במקרים הבאים:

  • נקודת הקצה של ה-proxy מקבלת בקשה ללא מפתח API או טוקן OAuth.
  • נקודת הקצה של ה-proxy מקבלת בקשה עם מפתח API או טוקן OAuth שתוקפו פג או שהם לא תקינים.
  • הזמן הקצוב לתפוגה של חיבורי WebSockets מסתיים.

שימוש בניפוי באגים ובניתוח נתונים

בכלי לניפוי באגים, לכל חיבור WebSockets תופיע בקשה אחת עם סטטוס 101.

בלוח הבקרה של Apigee Analytics, תראו את התנועה שנספרה לכל סשן של WebSockets. תנועת גולשים הלוך ושוב שמתרחשת במהלך הסשן לא מוצגת במרכז הבקרה.

אפליקציית WebSockets לדוגמה

מידע נוסף אפשר למצוא באפליקציה websocket-sample ב-GitHub. הדוגמה ממחישה איך לבצע קריאה לשרת proxy ל-API באמצעות חיבור WebSocket. ה-proxy קורא לאפליקציית יעד פשוטה בקצה העורפי שנפרסה באשכול Kubernetes.