Relay / Gateway¶
You can create a relay to forward data from one protocol to another.
For example, if you have a BLE only device and you want to forward packets from your Wi-Fi.
Create your relay¶
let relay: ComRelay = new ComRelay(); // Configure source and target protocol let sourceProtocol: ComProtocol = ...; // Your target protocol object instance (could be any of the supported protocols: BLE, socket, websocket, NFC...) let targetProtocol: ComProtocol = ...; // Your target protocol object instance (could be any of the supported protocols: BLE, socket, websocket, NFC...) relay.setTargetProtocol(targetProtocol); relay.setSourceProtocol(sourceProtocol); // Start your relay await relay.start({ timeout: 5000 // a timeout exception occurs if it does not start within 5 seconds }); console.log('Relay is now started');
Socket/Websocket server¶
If your source protocol is sockets or websockets, you need a socket/websocket server to send and listen to requests. This very basic server broadcasts any messages to clients.
// Import packages import { RelayServerOptions } from "@iotize/device-client.js/relay/api"; import { RelayServer } from "@iotize/device-client.js/relay/impl"; // For websocket server import { WebSocketAdapter } from "@iotize/device-com-websocket.js/relay"; // For socket server import { SocketAdapter } from "@iotize/device-com-socket.node/relay"; // Create the server let options: RelayServerOptions = { }; let relayServer: RelayServer = new RelayServer(new WebSocketAdapter.Server(), options);
Note:
You can also use your own adapter if it has a ServerAdapter
interface.