For production environments using SSGSCP, you will need to run your own server to receive and process measurements. We provide an easy-to-use Node.js module for this purpose. An open-source implementation is available on GitHub.
Installation
 1.  Create a new project folder and initialize a Node.js project:
npm init
 2.  Follow the prompts, then set the project type to "module":
npm pkg set type="module"
 3.  Install the 
ssgs
 package:
npm i ssgs
Basic Server Example
Create an 
index.js
 file with the following code. This server listens on the default SSGSCP UDP port 1818 and prints any received sensor data to the console.
import SSGS from 'ssgs';
// Create a server listening on the default SSGSCP port (UDP 1818)
const server = new SSGS(1818, client => {
    // Fired when a new gateway connects and is authorized
    const uidStr = SSGS.uidToString(client.gatewayUID);
    console.log(`Gateway ${uidStr} connected.`);
    // Fired when a sensor measurement is received from this gateway
    client.onupdate = update => {
        console.log(`\nSensor Seal ${SSGS.uidToString(update.sensorSealUID)}:`);
        console.log(`  Temperature: ${update.temperature}°C`);
        console.log(`  Vibration: ${update.vibration} mm/s^2`);
        console.log(`  Speed: ${update.rpm} rpm`);
    };
    // Fired when the gateway disconnects
    client.ondisconnect = () => {
        console.log(`Gateway ${uidStr} disconnected.`);
    };
});
console.log('SSGSCP server started on UDP port 1818.');
Authorizing Gateways
To accept a connection, your server must know the gateway's unique ID (UID) and its Pre-Shared Key (PSK). The PSK is generated by the gateway when you run the ssgscpsetup command.
 Option 1: Using authorized.json (Simple)
Create an 
authorized.json
 file in your project's root directory. The server will automatically load these credentials. This file must be kept confidential.
{
  "authorized_gateways": [
    {
      "description": "Example Gateway on Conveyor A",
      "uid": "4d ec 5d fa",
      "key": "67 82 60 ef 97... Paste full key from ssgscpsetup command"
    }
  ]
}
Option 2: Using a Callback (Advanced)
For dynamic lookups (e.g., from a database), set the 
onconnectionattempt
 callback.
server.onconnectionattempt = async (gatewayUID) => {
    // Your logic to check if the gateway is authorized
    const isAuthorized = await myDatabase.isGatewayAuthorized(gatewayUID);
    if (isAuthorized) {
        // Return the key from your database to authorize the connection
        return await myDatabase.getGatewayKey(gatewayUID);
    }
    // Return null to reject the connection
    return null;
};