ddp-node-ws
v1.0.2
Published
A small wrapper library to accelerate your implememtation of the websocket behavior for DDP use cases
Downloads
6
Readme
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 pathonStart
: 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 computationphase
: 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 computationphase
: An integer designating the phase of the status updatelastPhase
: 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.