סקירה כללית

'חיבורים בקרבת מקום' הוא API של רשתות עמית לעמית (P2P) שמאפשר לאפליקציות לגלות מכשירים בקרבת מקום, להתחבר אליהם ולהחליף איתם נתונים בקלות ובזמן אמת, ללא קשר לקישוריות לרשת.

כמה תרחישים לדוגמה:

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

מבוא

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

המטרה העיקרית של ה-API הזה היא לספק פלטפורמה פשוטה, אמינה ובעלת ביצועים טובים. מתחת לפני השטח, ה-API משתמש בשילוב של טכנולוגיות Bluetooth,‏ BLE ו-Wi-Fi, ומנצל את היתרונות של כל אחת מהן תוך עקיפת החולשות שלהן. התכונה הזו מאפשרת למפתחים להתמקד בתכונות שחשובות למשתמשים שלהם, כי היא מסתירה את המורכבות של Bluetooth ו-Wi-Fi במגוון פלטפורמות וגרסאות של מערכות הפעלה.

סקירה כללית על ממשקי API

השימוש ב-API מתחלק לשני שלבים: לפני החיבור ואחרי החיבור.

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

אחרי ששני הצדדים מאשרים את בקשת החיבור, החיבור נחשב לחיבור שנוצר והמכשירים עוברים לשלב שאחרי החיבור, שבמהלכו שני הצדדים יכולים להחליף נתונים.

פרסום וגילוי

המפרסמים יהיו גלויים למשתמשים אחרים ב-Discover, והמשתמשים יקבלו הודעה כשמפרסם חדש יימצא או כשמפרסם מסוים לא יימצא יותר.

יצירת קשרים

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

שני הצדדים יקבלו התראה על תהליך יצירת החיבור, ותהיה להם אפשרות לאשר או לדחות את החיבור.

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

החלפת נתונים

אחרי שנוצר חיבור, השימוש ב-API הוא סימטרי, כך שאין יותר הבחנה בין מפרסם לבין משתמש שמגלה את המפרסם.

שני הצדדים יכולים להחליף נתונים. יש 3 סוגים של מטען ייעודי (Payload) שנתמכים:

  • Bytes: מערכי בייטים מוגבלים ל-32k. הם מתאימים לשליחת נתונים כמו מטא-נתונים או הודעות בקרה.
  • קובץ: קבצים בכל גודל; הקבצים האלה מועברים מהאפליקציה לממשק הרשת עם העתקה מינימלית בין גבולות התהליך.
  • סטרימינג: סטרימינג של נתונים שנוצר תוך כדי תנועה, כמו במקרה של אודיו או וידאו מוקלטים, ללא גודל סופי ידוע מראש.

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

החיבורים שנוצרים הם דו-כיווניים, כלומר המפרסמים והמשתמשים יכולים לשלוח ולקבל נתונים בו-זמנית.

איסוף נתונים

כשמשתמשים ב-SDK של Google Play Services Nearby, נאספים נתוחי שימוש כדי לשפר את חוויית השימוש.

  • מדדי ביצועים: נתוני השהיה, המהימנות והתפוקה של גילוי וחיבור נאספים כשסורקים מכשירים ומתחברים אליהם באמצעות Nearby SDK.
  • פרטי המכשיר: נאספים דגם המכשיר, המדינה, גרסת ה-build ושם חבילת האפליקציה, והם משויכים למדדי הביצועים כדי לזהות פילוחים לפי אזור ומכשיר.

משתמשי הקצה יכולים לאשר או לדחות את האיסוף הזה דרך 'הגדרות' > Google > 'דפוסי שימוש וביצועים'.