@dmitrymyadzelets/slip-stream
Version:
RFC 1055 (SLIP) compliant endoder and decoder streams for Node.js
22 lines (17 loc) • 457 B
JavaScript
const { Duplex } = require('stream')
module.exports = (socket, onmessage) => {
function write (chunk, enc, cb) {
if (socket.readyState === socket.OPEN) {
socket.send(chunk, cb)
} else {
socket.once('open', ignore => write(chunk, enc, cb))
}
}
const stream = new Duplex({
read: size => {},
write: write,
final: cb => cb()
})
socket.on('message', onmessage || (chunk => stream.push(chunk)))
return stream
}