Files
ewelink-api/lib/websocket.js
Martin M d1cf9da212 Release v1.2.2 (#7)
* refactor websocket request

* return response from websocket request

* move request payloads to own file

* refactor: removed duplicate device request

* code linting

* JSDoc methods

* version bump
2019-07-23 21:30:25 -03:00

35 lines
764 B
JavaScript

const W3CWebSocket = require('websocket').w3cwebsocket;
const WebSocketAsPromised = require('websocket-as-promised');
const delay = require('delay');
/**
* Open WebSocket connection and send provided payloads
*
* @param url
* @param payloads
* @param delayTime
*
* @returns {Array}
*/
const WebSocketRequest = async (url, payloads, ...{ delayTime = 1000 }) => {
const wsp = new WebSocketAsPromised(url, {
createWebSocket: wss => new W3CWebSocket(wss),
});
const responses = [];
wsp.onMessage.addListener(message => responses.push(message));
await wsp.open();
for (const payload of payloads) {
await wsp.send(payload);
await delay(delayTime);
}
await wsp.close();
return responses;
};
module.exports = WebSocketRequest;