UNPKG

pull-ws

Version:

Simple pull-streams for websocket client connections

32 lines (25 loc) 729 B
module.exports = function(socket, callback) { var remove = socket && (socket.removeEventListener || socket.removeListener); function cleanup () { if (typeof remove == 'function') { remove.call(socket, 'open', handleOpen); remove.call(socket, 'error', handleErr); } } function handleOpen(evt) { cleanup(); callback(); } function handleErr (evt) { cleanup(); callback(evt); } // if the socket is closing or closed, return end if (socket.readyState >= 2) { return callback(true); } // if open, trigger the callback if (socket.readyState === 1) { return callback(); } socket.addEventListener('open', handleOpen); socket.addEventListener('error', handleErr); };