גישה להתקני חומרה באינטרנט

בוחרים את ה-API המתאים כדי לתקשר עם מכשיר חומרה לבחירתך.

François Beaufort
François Beaufort

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

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

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

אם אף אחת מהאפשרויות האלה לא מתאימה לכם, יכול להיות שממשק API ברמה נמוכה הוא הפתרון. כדאי לקרוא את המאמר איך לתקשר עם המכשיר כדי להתחיל במסע.

❌ גישה לווידאו ולאודיו מהמכשיר הזה

אפשר להשתמש ב-MediaDevices.getUserMedia() כדי לקבל סטרימינג של וידאו ואודיו בשידור חי מהמכשיר המכשיר וללמוד על לכידת אודיו ווידאו. אפשר גם לקבוע הזזה, הטיה וזום של המצלמה, והגדרות אחרות של המצלמה כמו בהירות ו ליצור ניגודיות, ואפילו לצלם תמונות סטילס. אפשר להשתמש ב-Web Audio כדי להוסיף אפקטים אודיו, ליצור רכיבים חזותיים של אודיו או להשתמש באפקטים מרחביים (כמו הזזה). מידע נוסף על פרופיל הביצועים של אפליקציות Web Audio ב-Chrome וגם.

אם אף אחת מהאפשרויות האלה לא מתאימה לכם, יכול להיות שה-API ברמה נמוכה הוא הפתרון. כדאי לקרוא את המאמר איך לתקשר עם המכשיר כדי להתחיל במסע.

🖨 ניתן להדפיס למכשיר הזה

אפשר להשתמש בפונקציה window.print() כדי לפתוח תיבת דו-שיח בדפדפן שבה המשתמש יכול לבחור את האפשרות הזו במכשיר כיעד להדפסת המסמך הנוכחי.

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

🔐 אימות באמצעות המכשיר הזה

משתמשים ב-WebAuthn כדי ליצור מפתח ציבורי חזק, מאומת ועם רמת המקור פרטי כניסה עם התקן אבטחת החומרה הזה כדי לאמת משתמשים. הוא תומך שימוש ב-Bluetooth, ב-NFC ובמאמתי U2F או FIDO2 בנדידה של USB — גם שנקראים מפתחות אבטחה, וגם מאמת פלטפורמה, שמאפשר למשתמשים לבצע אימות באמצעות טביעות האצבע או שיטה לביטול נעילה שלהם. כדאי לקרוא את המאמר איך ליצור אפליקציית WebAuthn הראשונה.

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

🗄 לגשת לקבצים במכשיר הזה

משתמשים ב-File System Access API כדי לקרוא את השינויים ולשמור אותם ישירות בקבצים ותיקיות במכשיר של המשתמש. אם האפשרות לא זמינה, משתמשים ב-File API כדי לשאול המשתמש יכול לבחור קבצים מקומיים מתיבת דו-שיח בדפדפן ואז לקרוא את התוכן של הקבצים האלה.

אם אף אחת מהאפשרויות האלה לא מתאימה לכם, יכול להיות שממשק API ברמה נמוכה הוא הפתרון. כדאי לקרוא את המאמר איך לתקשר עם המכשיר כדי להתחיל במסע.

🧲 גישה לחיישנים במכשיר הזה

משתמשים ב-General Sensor API כדי לקרוא ערכים גולמיים של חיישנים מחיישני תנועה (למשל, מד תאוצה או ג'ירוסקופ) וחיישנים סביבתיים (למשל אור מהסביבה, מגנטומטר). אם האפשרות לא זמינה, משתמשים ב-DeviceMotion ו-DeviceOrientation כדי לקבל גישה למד התאוצה, לג'ירוסקופ ולמצפן המובנים. מכשירים ניידים.

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

🛰 גישה לקואורדינטות ה-GPS במכשיר הזה

אפשר להשתמש ב-Geolocation API כדי לקבל את קווי האורך והרוחב של המיקום הנוכחי במכשיר הזה.

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

🔋 כדאי לבדוק את הסוללה במכשיר הזה

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

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

❌ צריך לתקשר עם המכשיר הזה דרך הרשת

ברשת המקומית, משתמשים ב-Nearby Playback API כדי לשדר אודיו ו/או לצפות בסרטונים במכשיר הפעלה מרחוק (למשל טלוויזיה חכמה או רמקול אלחוטי), או להשתמש את ה-presentation API כדי לעבד דף אינטרנט במסך שני (למשל מסך שמחובר לכבל HDMI או לטלוויזיה חכמה שמחוברת באופן אלחוטי).

אם המכשיר הזה חושף שרת אינטרנט, צריך להשתמש ב-Fetch API או ב-WebSockets כדי לאחזר נתונים מסוימים מהמכשיר הזה על ידי הגעה לנקודות הקצה המתאימות. בזמן TCP ו שקעי UDP לא זמינים באינטרנט. כדי לטפל ב-WebTransport, חיבורים אינטראקטיביים, דו-כיווניים לרשת מרובת-ממדים. שימו לב אפשר להשתמש ב-WebRTC גם כדי להעביר נתונים בזמן אמת עם דפדפנים אחרים באמצעות פרוטוקול מקצה לקצה (P2P).

🧱 כדאי לקרוא איך לתקשר עם המכשיר שלך

ההחלטה באיזה ממשק API ברמה נמוכה עליך להשתמש נקבעת לפי אופי ה-API החיבור הפיזי למכשיר. אם הוא אלחוטית, נסה את Web NFC כדי חיבורים אלחוטיים קצרי-טווח וחיבור Bluetooth או טורי אינטרנט של מכשירים בקרבת מקום מכשירים אלחוטיים.

  • באמצעות Web NFC, אפשר לקרוא ולכתוב במכשיר הזה כשהוא קרוב אל המכשיר של המשתמש (בדרך כלל 5 עד 10 ס"מ או 2 עד 4 אינץ'). כלים כמו NFC TagInfo של טכנולוגיית NXP מאפשרת לכם לעיין בתוכן של המכשיר הזה לצורך הנדסה הפוכה למטרות.

  • באמצעות Bluetooth באינטרנט, ניתן להתחבר למכשיר הזה באמצעות Bluetooth עם צריכת אנרגיה נמוכה חיבור כזה. אמורה להיות די קל לתקשר איתו כשהוא משתמש ב-Gemini. שירותי Bluetooth GATT סטנדרטיים (כמו שירות הסוללה) ההתנהגות מתועדת היטב. אם לא, בשלב הזה צריך למצוא תיעוד חומרה מסוים של המכשיר הזה או לבצע בו הנדסה הפוכה. אפשר להשתמש בכלים חיצוניים כמו nRF Connect for Mobile ובכלים מובנים לדפדפנים כמו הדף הפנימי about://bluetooth-internals בממשק מבוסס Chromium לשם כך. עיין בקטע הנדסה הפוכה של נורת Bluetooth. אורי שקד. לתשומת ליבך, ייתכן שמכשירי Bluetooth גם יקראו את מכשיר ממשק המשתמש (HID) או את המספר הסידורי ופרוטוקולים.

  • באמצעות טורי ב-Bluetooth, מתקשרים עם שירותי RFCOMM מותאמים מכשירי Bluetooth Classic, כמו פרופיל של יציאה טורית סטנדרטית (SPP). עבור אבל בשירותים מותאמים אישית מבוססי RFCOMM, צריך לעיין מסמכי תיעוד של הספק מה-UUID של השירות שיש להעביר אל requestPort().

אם אתם מחוברים בחיבור קווי, תוכלו לבדוק את ממשקי ה-API הבאים בסדר הבא:

  1. בעזרת WebHID, תוכלו להבין דוחות ממשק אנושי (HID) ומתארי דיווח באמצעות אוספים הם המפתח להבנת המכשיר הזה. סוג הפריט יכול להיות מאתגרת ללא מסמכי תיעוד של הספק עבור המכשיר הזה. כלים כמו אתם יכולים להיעזר ב-Wireshark כדי לבצע הנדסה הפוכה. אפשר גם להשתמש ב-HID אפליקציית אינטרנט של Explorer להעברת פרטים של מכשירי ממשק אנושי (HID) לפורמט קריא לאנשים.

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

  3. באמצעות WebUSB, ללא תיעוד ברור של המכשיר ואיזה USB פקודות שבהן המכשיר הזה תומך, זה קשה אבל עדיין אפשרי וניחושים. כדאי לצפות בסרטון לגלות את WebUSB ואת הפוטנציאל המרגש שלו של Suz הינטון. אפשר גם לבצע הנדסה הפוכה במכשיר הזה על ידי הקלטת USB גולמית תנועה ובדיקה של מתארי USB באמצעות כלים חיצוניים כמו Wireshark וכלי דפדפן מובנים כמו הדף הפנימי about://usb-internals בדפדפנים המבוססים על Chromium.

אישורים

תודה לריילי גראנט, תומס סטיינר וקייס בסקי שקוראים את המאמר הזה.

תמונה מאת Darya Tryfanava ב-Unbounce.