‚̧Nine Parsecs from Milwaukee
    Have ideas to improve npm?Join in the discussion! ¬Ľ

    web-spawn

    1.0.3¬†‚Äʬ†Public¬†‚Äʬ†Published

    WebSpawn

    Installation

    $ npm install web-spawn

    Features

    • Pipes stdin/stdout/stderr over web socket to allow communication with server process from client.
    • Transmits whitelisted signals to process from client.

    Dependencies

    Quick Start

    Server

    var app = require('express').createServer();
    var io = require('socket.io')(app);
    var webSpawn = require('web-spawn')(io, app);
    var SocketSpawn = require('web-spawn').SocketSpawn;
     
    // Can also be attached alternatively, like socket.io
    // var webSpawn = require('web-spawn')(io);
    // ...
    // webSpawn.attach(app);
     
    var cmds = {
        python2: function (socket) {
            var child = SocketSpawn(socket, ['python2', ['-u', '-i']);
        },
        python3: function (socket) {
            var child = SocketSpawn(socket, ['python3', ['-u', '-i']);
        }
    };
     
    webSpawn.route('/route', cmds, function(cmd, socket, query) {
        // cmd: fn to be called
        // socket: socket.io instance
        // query: query object sent by WebSpawn client
        
        // ...
        
        cmd(socket);
    });
     
    // ...
     
     

    Client

    <script src="/socket.io/socket.io.js"></script>
    <script src="/js/EventEmitter.js"></script>
    <script src="/web-spawn/web-spawn.js"></script>
    <script>
        var cmd = 'python3';
        
        var ws = new WebSpawn({
            ns: '/route',
            query: {
                cmd: cmd
            }
        });
        
        ws.connect();
        
        // same as ws.stdout(fn);
        ws.on('stdout', function(data) {
            console.log("Received output from process: " + data);    
        });
        ws.on('stderr', function(data) {
            console.error("Received error from process: " + data);    
        });
        
        // same as ws.stdin(str);
        ws.emit('stdin', 'a = 5\n');
        ws.emit('stdin', 'a + 10\n');
        
    </script>

    Install

    npm i web-spawn

    DownloadsWeekly Downloads

    1

    Version

    1.0.3

    License

    MIT

    Last publish

    Collaborators

    • avatar