@oneflow/loopback-component-primus

Primus adapter for loopback. It allows you to call loopback's remote methods via websocket.

Stats

StarsIssuesVersionUpdatedCreatedSize
@oneflow/loopback-component-primus
601.0.94 years ago4 years agoMinified + gzip package size for @oneflow/loopback-component-primus in KB

Readme

loopback-component-primus

Primus adapter for loopback. It allows you to call loopback's remote methods via websocket.

Getting Started

npm install --save @oneflow/loopback-component-primus

Add the loopback-component-primus component to the server/component-config.json:

"@oneflow/loopback-component-primus": {}

A small change is needed in the server/server.js file, replace:

app.start();

with:

app.server = app.start();

Usage

Call remote methods

The primus client library is exposed at the URL http://<LOOPBACK_URL>/primus/primus.js You will need to import it in your html:

<script type="text/javascript" src="http://<LOOPBACK_URL>/primus/primus.js"></script>

Then, in your code:

const primus = new Primus({
    url: 'http://<LOOPBACK_URL>',
});

Now you will be able to call remote methods using primus.send('invoke', {...});


// Call prototype method:

primus.send('invoke', {
        methodString: 'color.prototype.patchAttributes',
        args: {
            id: 1,
            data: { name: 'black' }
        },
    }, function (err, data) {
        if (err) {
            return alert('Error from server: ' + JSON.stringify(err));
        }

        alert('Record updated: ' + JSON.stringify(data));
    });
        
// Call static method:
primus.send('invoke', {
        methodString: 'color.find',
        args: {
            filter: {
                where: {
                    name: 'black'
                }
            }
        },
    }, function (err, data) {
        if (err) return alert('Error from server: ' + JSON.stringify(err));
    
        alert('Find results: ' + JSON.stringify(data));
    });
Spark

You can find the spark property, in the ctx object.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.