Ebben a cikkben megvitatjuk, miért és hogyan használhatja a Node.js-t a tárgyak internete (IoT) eszközei kiszolgálói oldalán.
Értse meg az üzleti lehetőséget
2019-ben az IoT piaci bevétele elérte a 212 milliárd dollárt. Körülbelül 26,66 milliárd csatlakoztatott IoT-eszköz van világszerte, és ez a szám 2025-re eléri a 75,44 milliárdot.
Az ENSZ becslése szerint 2020 februárjában a világ népessége jelenleg 7,7 milliárd ember. Az egyszerű matematika azt mondja nekünk, hogy az átlagember körülbelül 3-4 IoT-eszközzel rendelkezik. Van egy? Esetleg okosóra? Okos tévé? Vagy okos autó?
Tovább haladva a lakosság 2025-ben várhatóan 8,1 milliárd embert fog elérni. Ugyanez a matematikai számítás azt mutatja, hogy 2025-ben egy átlagember 9-10 okoseszköz birtokában lesz.
Látod, hová megyek ezzel? Csatlakozni szeretne ehhez a jövedelmező piaci réshez, és az IoT-eszközt a 9-10 közé sorolni?

Válassza ki a megfelelő keretet
Az IoT eszköz kliens oldalát maga a hardver képviseli. C, C ++ vagy Lua programozással rendelkezik - alacsony szintű és nehéz programozási nyelvekkel. De a hardver korlátai miatt nem sokat tehetsz ellene.
A nagy teljesítmény mellett az IoT-eszközök felhasználói az alacsony költségeket és az energiahatékonyságot helyezik előtérbe. Így legalább egyelőre folytatnia kell a munkát alacsony szintű nyelvekkel.
Másrészt az IoT-alkalmazások szerveroldala nagyobb választási szabadságot kínál. Itt nincs korlátozva a hardver, így kiválaszthatja a kívánt kódolási nyelvet és keretrendszert.
Úgy gondolom, hogy a megfelelő a Node.js. Itt van miért.
A Node.js gyors és teljesítő
Először is, minden IoT eszköz folyamatosan dolgozik a dinamikusan változó adatokkal. Ez azt jelenti, hogy szükséged van egy keretrendszerre, amely képes kezelni a valós idejű alkalmazásokat és a nagy adatáramlásokat.
A Node.js a Google V8 JS motorjára épül, amely rendkívül hatékony és tökéletesen méretezhető. Ennek a szolgáltatásnak köszönhetően a Node.js az első számú keretrendszer, amelyet a valós idejű alkalmazásokhoz és platformokhoz kell használni. Az állandóan változó adatok számára sem jelent kihívást.
A Node.js könnyen integrálható az IoT protokollokkal
Az IoT-alkalmazások aktívan használják a közzététel-előfizetés alapú üzenetküldő protokollt, az MQTT-t. Viszont a szállításhoz és a beágyazáshoz ez a protokoll a WebSocketeket használja. Az MQTT és a WebSockets egyaránt jól támogatott és könnyen integrálható a Node.js fájlba.
A Node.js modulok megkönnyítik az IoT fejlesztését
A Node.js az npm-mel, a Node Package Managerrel bővül, amely sok hasznos IoT modult tartalmaz. Körülbelül 80 csomag van az Intel IoT Edison, Arduino vagy Raspberry Pi számára. Emellett több mint 30 csomagot tartalmaz különböző érzékelőkhöz, jelzőfényekhez és egyéb eszközökhöz.
Ezért a dolgok internetének fejlesztése egyszerűbb és gyorsabb a Node.js IoT modulokkal.
A Node.js erőforrás-hatékony és méretezhető
Általában a fejlesztők inkább a Node.js-szel dolgoznak együtt, mert ez nem igényel sok erőforrást. A CPU és a RAM nincs túlterhelve.
Emellett a Node.js nagymértékben méretezhető, ami a legtöbb modern vállalat számára feltétlenül szükséges.
Vigyázni kell a kihívásokkal
Az IoT-fülke belépése a siker útjára vezethet. Nem csoda hát, hogy sok kihívás és csapda vár rád utadon - a sikert soha nem könnyű elérni. Az első és legfontosabb kihívás, amellyel tisztában kell lennie, a biztonság.
A biztonság az IoT-szférában az egyik legfontosabb probléma, és az első buktatók közé fog ütközni. Tehát mit kell tennie?
Biztonságos hitelesítés
Kezdjük a hitelesítéssel. A Node.js-ben sok eszköz van a hitelesítéshez: tokenek, JSON web-tokenek, Auth0 és így tovább. Mindegyiknek megvannak a maga előnyei és hátrányai. Először is meg kell nézni őket az IoT szemszögéből.
Egyrészt a tokenek hatékonyak, de nem 100% -ban biztonságosak . Remek módszer a hitelesítés beállítására, mivel lehetővé teszik egy adott felhasználó azonosítását és a hozzáférés megadását vagy megtagadását. A tokenek bármilyen algoritmussal titkosíthatók.
A hardvereknek (szkennerek, érzékelők, hubok vagy egyéb IoT-dolgok) azonban ezeket a tokent vagy bejelentkezési / jelszó adatokat firmware-ben kell tárolniuk. Ez azt jelenti, hogy a támadók ellophatják a tokent, ha fizikai hozzáférésük van a hardverhez. Ugyanez vonatkozik a JWT-re vagy az Auth0-ra is.
Másrészt bármilyen eszközt használhatunk a szerver oldalon történő hitelesítéshez. Bármely hitelesítési eszközt könnyen integrálhat a Node.js platformra.
Nagyon sok npm csomag lehetővé teszi ezt manuálisan: Auth0, Passport és JWT. A felhő IoT szolgáltatásokkal való integrációhoz is vannak csomagok: @ azure-iot / authentication, aws-iot-device-sdk és így tovább.
Biztonságos HTTP kérések
Ezután legyen óvatos az IoT-eszközök HTTP-kéréseivel.Ellenőriznie kell, hogy kapott-e kérést egy megfelelő IoT-eszközről.
Először is meg kell valósítania a HTTPS-t az IoT-eszközeivel. A hardver nem böngésző, és kézzel kell végrehajtania rajta a HTTPS-t. A kiszolgálói oldalon megteheti manuálisan, vagy használhatja a HTTPS konfigurációval és tanúsítványokkal ellátott tárhelyet.
A Node.js-ben meglehetősen egyszerű megvalósítani:
const express = require('express'); const https = require('https'); const http = require('http'); const fs = require('fs'); const options = { key: fs.readFileSync('path/to/your/key.pem'), cert: fs.readFileSync(path/to/your/certificate.cert') }; const app = express(); http.createServer(app).listen(80); https.createServer(options, app).listen(443);
A HTTPS SSL vagy TLS protokollokat használ az adatok titkosításához. Ahhoz azonban, hogy megbizonyosodjon arról, hogy kérést kapott a szükséges szervertől vagy klienstől, használjon további adattitkosítást. Például így használhatja az aláírást:
const fetch = require('node-fetch'); const verifier = crypto.createVerify('RSA-SHA1') const SIGNATURE_FORMAT = 'base64'; //check if it trusted url for your certificate const trustedUrl = ‘//trustedUrl/’ const isTrustedUrl = trustedUrl.match(url); If (isTrustedUrl) { verifier.update(req.body, 'utf8') fetch(isTrustedUrl) .then(certificate => { // check signature const isValidSignature = verifier.verify(certificate, reg.header.signature, SIGNATURE_FORMAT); }) .catch(err => console.log(err)); }
Ennek a résznek a lezárása:
- Először ellenőriznie kell a tanúsítvány megbízható URL-jét.
- Ezután a tanúsítvány nyilvános kulcsával aláírja a kérelem szervét.
- Végül összehasonlítja az aláírt törzset a fejlécek aláírásával.
Rendkívül fontos tudni, hogy kéréseket kap a megfelelő eszközökről, és hogy nem ér középső támadás.
Nézze meg ezeket a példákat
Asama - az alkalmazottak mozgásának nyomon követése

Az Asama egy mikro-helymeghatározó rendszer, amely intelligens órákat és Bluetooth jelzőket használ az alkalmazottak mozgásának és aktivitásának nyomon követésére. A jelzőfények szabályos jelet továbbítanak.
Ezen jelek szerint az okosóra meghatározza az alkalmazott helyét. Az okosóra azt is elemzi, hogy a megfelelő ember viseli-e, és az alkalmazott alszik vagy dolgozik-e.


Ezután az adatokat továbbítják a mobilalkalmazásba, amelyet a munkáltató telefonjára telepítenek és konfigurálnak. A rendszert az IoT Node.js működteti.
Így a vezetők valós időben nyomon követhetik alkalmazottaikat, azonnal megtalálhatják a szükséges embert és optimalizálhatják a munkaterületet. Ezenkívül a hét végén a munkáltató átfogó jelentést kap a munkavállalói tevékenységről. Mindez hozzájárul a vállalat teljesítményének és termelékenységének növeléséhez.
This solution might not suit a business with a small office and flexible hours. Yet, it works perfectly for industrial plants, construction sites, factories, warehouses, shopping centers, supermarkets, hotels, security agencies, restaurants, or stores.
It's well-suited anywhere you as an employer need to know if employees are coming too late or leaving too early, being absent at the working place, not working actively throughout the day, or not following routes and schedules.

PREE – finding your belongings
PREE is a system of BLE beacons and mobile software which helps people stop losing their stuff. It is a lifesaver for those who often forget their phone, bag, keys, wallet, or any other valuable belongings.
The user can see the location of their item in real time and share it with trusted contacts. Once the item is out of range, they will get a notification, and so will their friends or family members. It doesn't spam others with notifications when they are not needed – for example, when at home, the user can mute them for a certain area.
This Internet of Things IoT system is built with Node.js, Express, and Mongo on the backend and Ionic with Cordova for the frontend. The combination of these frameworks ensures the best user experience.

Validate your idea
Once you have an idea for an IoT product, start with validating it. You can do this in two ways:
- Hire an idea validation team, who will help you test the viability of your product before you invest in development, or
- Béreljen fel egy szoftvertervező és -fejlesztő csapatot, aki átfogó termékfelfedezési folyamatot indít el.
Utóirat
Hatalmas köszönetet szeretnék küldeni Volodya Andrushchaknak, a KeenEthics IoT guru-jának, aki hozzájárult és alapvetően életet lehelt ebbe a cikkbe.
Ha tetszett a cikk, mindenképpen olvasson el többet a Node.js-ről: Melyek a Node.JS előnyei? vagy NodeJS vs Python: Hogyan válasszuk ki a legjobb technológiát a webalkalmazás hátterének fejlesztésére.
A KeenEthics blogon közzétett eredeti cikk itt található: IoT és a Node.JS: Hogyan lehet megragadni az esélyt?