Dostęp do urządzeń w internecie

Wybierz odpowiedni interfejs API do komunikacji z wybranym urządzeniem.

François Beaufort
François Beaufort

Celem tego przewodnika jest wybranie najlepszego interfejsu API do komunikacji z urządzenie (np. kamera internetowa, mikrofon itp.) w internecie. Według „najlepszego” Tak to mówię daje Ci wszystko, czego potrzebujesz w najkrótszym czasie. Innymi słowy, znasz ogólny przypadek użycia, który chcesz rozwiązać (np. dostęp do filmów), ale nie wiem, którego interfejsu API użyć, ani zastanawiać się, czy jest inny sposób osiągnięcia tego celu.

Jednym z problemów, z którym często spotykają się programiści stron internetowych, jest niskopoziomowych interfejsów API bez konieczności poznawania interfejsów API wyższego poziomu, które są łatwiejsze do i zadbać o wygodę użytkowników. Dlatego w tym przewodniku polecamy z interfejsami API wyższego poziomu, ale wspomina też o interfejsach API niższego poziomu w razie stwierdziliśmy, że wyższe wersje interfejsu API nie spełniają Twoich wymagań.

🕹 Odbieraj zdarzenia wejściowe z tego urządzenia

Spróbuj nasłuchiwać zdarzeń Klawiatura i Wskaźnik. Jeśli to urządzenie to gra kontrolera użyj interfejsu Gamepad API, aby wiedzieć, które przyciski są naciskane które osie się przesunęły.

Jeśli żadna z tych opcji nie działa, rozwiązaniem może okazać się niskopoziomowy interfejs API. Na początek dowiedz się, jak komunikować się z urządzeniem.

📸 Uzyskuj dostęp do dźwięku i obrazu z tego urządzenia

Użyj funkcji MediaDevices.getUserMedia(), aby pobierać z niego strumienie audio i wideo na żywo urządzenia i dowiedz się więcej o rejestrowaniu dźwięku i wideo. Możesz też kontrolować ustawienia przesunięcia, pochylenia i powiększenia, a także inne ustawienia, takie jak jasność kontrast, a nawet zrobienie zdjęć. Web Audio może być używany do dodawania efektów. do dźwięku, tworzyć wizualizacje dźwiękowe ani stosować efektów przestrzennych (np. przesuwanie). Dowiedz się, jak profilować wydajność aplikacji audio w Chrome. .

Jeśli żadna z tych opcji nie działa, rozwiązaniem może okazać się niskopoziomowy interfejs API. Na początek dowiedz się, jak komunikować się z urządzeniem.

🖨 Drukuj na tym urządzeniu

Użyj funkcji window.print(), by otworzyć okno przeglądarki, które pozwala użytkownikowi wybrać tę opcję. jako urządzenie docelowe, aby wydrukować bieżący dokument.

Jeśli to rozwiązanie nie działa, rozwiązaniem może być interfejs API niskiego poziomu. Wymelduj się Na początek dowiedz się, jak się komunikować z urządzeniem.

🔐 Uwierzytelnij się na tym urządzeniu

Użyj WebAuthn, aby utworzyć silny, potwierdzony klucz publiczny ograniczony do źródła. danych logowania za pomocą tego sprzętowego urządzenia zabezpieczającego w celu uwierzytelniania użytkowników. Obsługuje uwierzytelniania przez Bluetooth, NFC i urządzenia uwierzytelniające U2F lub FIDO2 w roamingu USB, a także zwanych kluczami bezpieczeństwa i platformą uwierzytelniającą, uwierzytelniać przy użyciu odcisku palca lub blokady ekranu. Zajrzyj do artykułu Tworzenie pierwszą aplikację WebAuthn.

Jeśli jest to inne urządzenie zabezpieczające (np. portfel kryptowalutowy), rozwiązaniem może być niskopoziomowy interfejs API. Wypróbuj karty Discover jak komunikować się z urządzeniem.

🗄 Zyskaj dostęp do plików na tym urządzeniu

Używaj interfejsu File System Access API do odczytywania plików i zapisywania zmian bezpośrednio w nich. foldery i foldery na urządzeniu użytkownika. Jeśli ten interfejs nie jest dostępny, użyj interfejsu File API, aby zadać pytanie. wybrać pliki lokalne w oknie przeglądarki, a następnie odczytać ich zawartość tych plików.

Jeśli żadna z tych opcji nie działa, rozwiązaniem może okazać się niskopoziomowy interfejs API. Na początek dowiedz się, jak komunikować się z urządzeniem.

🧲 Uzyskaj dostęp do czujników na tym urządzeniu

Interfejs General Sensor API służy do odczytywania nieprzetworzonych wartości z czujników ruchu (np. akcelerometr lub żyroskop) i czujniki środowiskowe (np. światło otoczenia, magnetometru). Jeśli nie są dostępne, użyj wartości DeviceMotion i DeviceOrientation wydarzeń, aby uzyskać dostęp do wbudowanego akcelerometru, żyroskopu i kompasu urządzeniach mobilnych.

Jeśli w Twoim przypadku to nie działa, rozwiązaniem może być interfejs API niskiego poziomu. Wymelduj się Na początek dowiedz się, jak się komunikować z urządzeniem.

🛰 Sprawdzaj współrzędne GPS na tym urządzeniu

Użyj interfejsu API geolokalizacji, aby poznać szerokość i długość geograficzną użytkownika bieżącej pozycji na tym urządzeniu.

Jeśli w Twoim przypadku to nie działa, rozwiązaniem może być interfejs API niskiego poziomu. Wymelduj się Na początek dowiedz się, jak się komunikować z urządzeniem.

🔋 Sprawdź baterię w tym urządzeniu

Użyj interfejsu Battery API, aby uzyskać informacje o hoście o poziomie naładowania baterii. powiadomienia o zmianie poziomu baterii lub stanu ładowania.

Jeśli w Twoim przypadku to nie działa, rozwiązaniem może być interfejs API niskiego poziomu. Wymelduj się Na początek dowiedz się, jak się komunikować z urządzeniem.

⧖ Komunikuj się z tym urządzeniem przez sieć

W sieci lokalnej używaj interfejsu Remote Odtwarzanie API, aby transmitować dźwięk lub/lub za pomocą urządzenia do odtwarzania zdalnego (np. telewizora smart TV lub głośnika bezprzewodowego) albo użyj interfejsu Presentation API do renderowania strony internetowej na drugim ekranie (np. wyświetlacza podłączonego kablem HDMI lub telewizora smart TV podłączonego bezprzewodowo).

Jeśli to urządzenie udostępnia serwer WWW, użyj interfejsu Fetch API lub WebSockets, aby pobierania niektórych danych z tego urządzenia, docierając do odpowiednich punktów końcowych. Mimo że TCP i Gniazda UDP są niedostępne w internecie. Sprawdź WebTransport, przy użyciu interaktywnych, dwukierunkowych i multipleksowych połączeń sieciowych. Pamiętaj, że WebRTC może też służyć do przekazywania danych w czasie rzeczywistym z innymi przeglądarkami. przy użyciu protokołu peer-to-peer.

🧱 Odkryj, jak komunikować się ze swoim urządzeniem

Wybór niskopoziomowego interfejsu API zależy od charakteru fizyczne połączenie z urządzeniem. Jeśli korzystasz z sieci bezprzewodowej, sprawdź komunikację NFC połączenia bezprzewodowe bardzo krótkiego zasięgu i Web Bluetooth do obsługi sieci bezprzewodowych w pobliżu urządzenia.

  • Dzięki Web NFC możesz odczytywać i zapisywać dane na tym urządzeniu, gdy jest ono w pobliżu urządzenie użytkownika (zwykle 5–10 cm). Narzędzia takie jak NFC TagInfo NXP umożliwia przeglądanie zawartości urządzenia w celu analizowania wstecznego. w celach informacyjnych.

  • Przez połączenie Web Bluetooth możesz połączyć się z tym urządzeniem przez Bluetooth Low Energy połączenia. Aplikacja powinna być dość łatwa do komunikowania się, ustandaryzowanych usług GATT Bluetooth (takich jak serwis baterii) zachowanie jest dobrze udokumentowane. Jeśli nie, na tym etapie musisz albo dokumentację sprzętową tego urządzenia lub przeanalizować je wstecznie. Dostępne opcje korzystać z narzędzi zewnętrznych, takich jak nRF Connect for Mobile, oraz z wbudowanych narzędzi przeglądarki. takiej jak wewnętrzna strona about://bluetooth-internals w Chromium w różnych przeglądarkach. Zapoznaj się z artykułem Reverse-Engineering a Bluetooth Lightcycle (w języku angielskim). Uri potrząsnął. Pamiętaj, że urządzenia Bluetooth mogą także odczytywać dane HID lub szeregowe protokoły API.

Jeśli używasz przewodowego, sprawdź te interfejsy API w tej konkretnej kolejności:

  1. Dzięki WebHID możesz lepiej zrozumieć raporty HID i ich deskryptory kolekcje są kluczem do zrozumienia tego urządzenia. Może to być bez dokumentacji dostawcy tego urządzenia. Narzędzia takie jak Wireshark pomoże Ci w analizowaniu wstecznym. Możesz też użyć parametru HID aplikacja internetowa Eksplorator służąca do zapisywania informacji o urządzeniach HID w formacie zrozumiałym dla człowieka.

  2. Z numerem seryjnym internetowego urządzenia, bez dokumentacji dostawcy dotyczącej tego urządzenia oraz poleceń obsługiwanych przez to urządzenie. Jest to trudne, ale mimo to jest możliwe. zgadywanie. Analiza wsteczna tego urządzenia może być wykonana przez przechwytywanie nieprzetworzonego dysku USB za pomocą takich narzędzi jak Wireshark. Możesz też użyć terminalu szeregowego aplikację internetową do eksperymentowania z tym urządzeniem, jeśli korzysta ono z protokołu zrozumiałego dla człowieka.

  3. Za pomocą WebUSB bez przejrzystej dokumentacji urządzenia i typu USB poleceń obsługiwanych przez to urządzenie. Jest to trudne, ale mimo to jest możliwe. zgadywanie. Obejrzyj film Exploring WebUSB i jego ekscytujący potencjał od Suz Hinton. Możesz również analizować wstecznie urządzenie, przechwytując nieprzetworzony plik USB i sprawdzanie deskryptorów USB za pomocą narzędzi zewnętrznych, takich jak Wireshark i wbudowane narzędzia przeglądarki, takie jak wewnętrzna strona about://usb-internals w przeglądarkach opartych na Chromium.

Podziękowania

Dziękujemy Reilly Grant, Thomasowi Steinerowi i Kayce Basques za przeczytanie tego artykułu.

Zdjęcie: Darya Tryfanava, Unsplash.