socket.io-streamify
Convert your socket.io sockets into duplex streams.
This module is based on the work of websocket-stream we modified the code to support socket.io
Install
$ npm install @geut/socket.io-streamify
Usage
Client
const streamify = require('@geut/socket.io-streamify')
const stream = streamify('http://localhost:3000')
stream.on('data', chunk => {
console.log(chunk.toString('utf8'))
})
stream.write('hello from client')
Server
const { createServer } = require('@geut/socket.io-streamify')
createServer(3000, stream => {
stream.on('data', (data) => {
console.log(data.toString('utf8'))
stream.write('hi from server')
})
})
API
const stream = streamify(url|socket, [options])
Options
The available options differs depending on if you use this module in the browser or with node.js.
options.browserBufferSize
How much to allow the socket.bufferedAmount to grow before starting to throttle writes. This option has no effect in node.js.
Default: 1024 * 512
(512KiB)
options.browserBufferTimeout
How long to wait before checking if the socket buffer has drained sufficently for another write. This option has no effect in node.js.
Default: 1000
(1 second)
options.objectMode
Send each chunk on its own, and do not try to pack them in a single websocket frame.
Default: false
options.binary
Always convert to Buffer
in Node.js before sending.
Forces options.objectMode
to false
.
Default: true
options.socketIO
Options for the socketIO instance.
const io = streamify.createServer(port|server, [options], [callback])
Options
Options are part of Socket.IO server.
Callback
function (stream) {}
Execute it every time the server gets a new socket connection.
io.onStream(stream => {})
Add a listener for a stream
event.
io.removeOnStream(stream => {})
Remove a listener for a stream
event.
Issues
Contributing
License
MIT © A GEUT project