Skip to content

JS Ipc for use with PyIPC, this package should go to npm

License

Notifications You must be signed in to change notification settings

its-mr-monday/jsipc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JsIPC

This project is solely used because I hate using js for IPC controls

This is to be used with the following pyton3 server:

PyIPC

Installation

Using npm:

    npm i @itsmrmonday/jsipc

Using yarn:

    yarn add @itsmrmonday/jsipc

JsIPC Documentation

JsIPC is a JavaScript class for inter-process communication using Socket.IO. It provides an easy-to-use interface for connecting to a server, handling events, and invoking remote procedures.

Import

//For ES6 (React, Angular, etc)
import JsIPC from '@itsmrmonday/jsipc';

//For ES5 (Node, Electron, etc)
const JsIPC = require('@itsmrmonday/jsipc');

Class: JsIPC

Constructor

new JsIPC(port = 5000, logger = false)

Creates a new JsIPC instance.

  • port: The port number to connect to (default is 5000)

Methods

on(event, handler)

Registers a handler for a specific event.

ipc.on('greet', (data) => {
    return `Hello, ${data.name}!`;
});

off(event)

Removes a handler for a specific event.

ipc.off('greet');

async invoke(event, data)

Invokes a remote procedure and waits for its response.

const result = await ipc.invoke('greet', { name: 'Bob' });
console.log(result);  // Outputs: Hello, Bob!

close()

Closes the Socket.IO connection.

ipc.close();

Full Example

import JsIPC from '@itsmrmonday/jsipc';

async function main() {
    const ipc = new JsIPC(5000);

    ipc.on('greet', (data) => {
        return `Hello, ${data.name}!`;
    });

    try {
        const result = await ipc.invoke('greet', { name: 'Bob' });
        console.log(result);  // Outputs: Hello, Bob!
    } catch (error) {
        console.error('Error:', error);
    } finally {
        ipc.close();
    }
}

main();

This example sets up a JsIPC client, registers a 'greet' handler, invokes a remote 'greet' procedure, and then closes the connection.

Interoperability with PyIPC

JsIPC is designed to work seamlessly with PyIPC. You can use JsIPC to connect to a PyIPC server running in a Python process, enabling powerful inter-process communication scenarios between JavaScript and Python applications.

About

JS Ipc for use with PyIPC, this package should go to npm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published