1.0.2 • Published 6 years ago

ddp-node-ws v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

DDP websocket library

This is a simple library for Node to simplfy the implementation of the web socket API for Use cases.

The library is uses as follow:

const ws = require('ddp-node-ws');
const app = require('express')();
const wsServer = new ws.Server(app);

wsServer.ws("/url", (wsobject) => {
    console.log('New computation requested');
    ...
    wsobject.sendUpdate({}, phaseNumber);
    ...
    wsobject.sendResult({}, phaseNumber, true);
}, (wscobject) => {
    console.log('Computation continuation requested');
    if notAbleToContinue {
        wscobject.notPossibleToContinue();
    }
    ...
    wscobject.sendUpdate({}, phaseNumber);
    ...
    wscobject.sendResult({}, phaseNumber, true);
});

app.listen(3000);

Web socket server

The web socket server. This object handle endpoint management and generate the web socket objects. It exposes only one method:

ws(path: string, onStart: (wso: WebSocketObject) => void, onContinue: (wsco: WebSocketContinueObject) => void)

  • path: the enpoint path
  • onStart: A function that will process the request of a new computation through a web socket object (see below).
  • onContinue: A function that will process the request of a new computation through a web continueation socket object (see below).

Web socket object

A websocket object is passed for each new websocket initiliazed. This object expose two methods

sendUpdate(data: object, phase: number = 0)

  • data: An object with the update status of the computation
  • phase: An integer designating the phase of the status update

sendResult(data: object, phase: number = 0, lastPhase: boolean = false)

  • data: An object with the update status of the computation
  • phase: An integer designating the phase of the status update
  • lastPhase: A flag indicating this is the last result report and the computation is over. This will terminate the websocket.

Web socket continuation object

This object is an extension of the the Web socket object. It is passed only on a continuation request. It exposes the same methods plus one:

notPossibleToContinue() Closes the websocket indicating that the continuation was not possible.