1.1.5 • Published 6 years ago

uws-stream v1.1.5

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

uws-stream

Build Status

Wrappered uWebSockets with the Node Streams API.

Support node version >= 4.

Install

$ npm install uws-stream --save

Usage

As a client

This module works in Node or in Browsers that support WebSockets. you can use browserify or webpack to package this module for browser use.

const WebSocketStream = require('uws-stream');

const stream = WebSocketStream('ws://echo.websocket.org');
stream.on('data', (chunk) => {
  console.log('Your\'s input: ', chunk.toString());
});
stream.on('error', (error) => {
  console.log('error', error);
});
process.stdin.pipe(stream);

On the server

  1. Create an new server.

    const http = require('http');
    const WebSocketStream = require('uws-stream');
    
    WebSocketStream.createServer({ port: 8443 }, (stream, req) => {
        stream.pipe(stream);
    });
  2. Attach an exists server.

    const http = require('http');
    const WebSocketStream = require('uws-stream');
    
    const server = http.createServer();
    
    WebSocketStream.createServer({ server: server }, (stream, req) => {
        stream.pipe(stream);
    });

Options

The available options differs depending on if you use this module in the browser or with node.js. Options can be passed in as the third or second argument - WebSocket(address, [protocols], [options]).

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.perMessageDeflate

We recommend disabling the per message deflate extension to achieve the best throughput.

Default: true on the client, false on the server.

Example:

var WebSocketStream = require('uws-stream')
var ws = WebSocketStream('ws://realtimecats.com', {
  perMessageDeflate: false
})

Beware that this option is ignored by browser clients. To make sure that permessage-deflate is never used, disable it on the server.

Other options

When used in node.js see the uws documentation

Run the tests

$ npm test

Contribute

  1. fork.

  2. install dependencies.

    $ npm install
  3. run command.

    $ gulp
1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago