‘use strict’;
const EventEmitter = require(‘events’);
// wrapper around the Node.js ws module // for use in browsers class WebSocketWrapper extends EventEmitter {
constructor(url) { super(); this._ws = new WebSocket(url); // eslint-disable-line no-undef this._ws.onopen = () => { this.emit('open'); }; this._ws.onclose = () => { this.emit('close'); }; this._ws.onmessage = (event) => { this.emit('message', event.data); }; this._ws.onerror = () => { this.emit('error', new Error('WebSocket error')); }; } close() { this._ws.close(); } send(data, callback) { try { this._ws.send(data); callback(); } catch (err) { callback(err); } }
}
module.exports = WebSocketWrapper;