How to...

Referencing

The io.Connect JavaScript library is available as a single JavaScript file, which you can include in your apps. If you are using an io.Connect installer, you can find the JavaScript files in %LocalAppData%/interop.io/io.Connect Desktop/SDK/ioDesktopJS/js. When deploying your app in production, it is recommended to always reference a specific minified version:

import IODesktop from "../scripts/desktop.umd.min.js";

The io.Connect JavaScript library is also available as an NPM package, which you can include as a dependency in your project and import in your code. The currently available packages are @interopio/core and @interopio/desktop. The @interopio/core package is a subset of the @interopio/desktop package and offers basic functionalities for sharing data between apps (Interop, Shared Contexts, Pub/Sub, while the @interopio/desktop package offers additional options for sharing data between apps (Channels), as well as advanced window management functionalities (App Management, Layouts, Window Management).

To include any of the packages as a dependency in your project, navigate to the root directory of your project and run:

npm install @interopio/desktop

To reference the io.Connect library:

const IODesktop = require("@interopio/desktop");

Initialization

If your Node.js app is started by io.Connect Desktop, it isn't required to pass authentication information in the optional configuration object passed to the factory function:

const IODesktop = require("@interopio/desktop");

// This will prevent the app from exiting when io.Connect is initialized.
// Remove in real apps.
setTimeout(()=>{
    console.log("Done.");
}, 10000);

const initializeIOConnect = async () => {
    // Optional configuration for initializing the library.
    const config = { appManager: "full" };

    // Use the object returned by the factory function to access the io.Connect APIs.
    const io = await IODesktop(config);

    // Here io.Connect is initialized and you can access all io.Connect APIs.

    console.log(`io.Connect version: ${io.version}`);
};

initializeIOConnect().catch(console.error);

App Definition

To add your Node.js app to the io.Connect launcher, you must create a JSON file with app definition. Place this file in the %LocalAppData%/interop.io/io.Connect Desktop/UserData/<ENV>-<REG>/apps folder, where <ENV>-<REG> represents the environment and region of io.Connect Desktop (e.g., DEMO-INTEROP.IO).

The following is an example definition of a Node.js app:

{
    "name": "node-server",
    "type": "node",
    "service": true,
    "details": {
        "path": "%GDDIR%/PathToMyServer/index.js",
        "showConsole": true
    }
}

The "name", "type" and "path" properties are required and "type" must be set to "node". The "path" property points to a JavaScript file that io.Connect Desktop will execute in a Node.js environment.

For details on how to configure a remotely hosted Node.js app, see the Developers > Configuration > Application section.

For details on how to use different Node.js versions, see the Using Different Node.js Versions section.