websocket-headers-generator v1.0.3
WebSocketHeadersGenerator
WebSocketHeadersGenerator is a Node.js class that generates headers for WebSocket communication. It provides a secure and flexible way to generate headers with customizable options such as origin, host, subprotocol, extensions, and additional headers. It also includes input validation, error handling, and randomization of some header values to add more variety and security to the headers. This package is ideal for developers who need to generate headers for WebSocket communication in their Node.js applications.
Installation
You can install the package using npm:
npm install websocket-headers-generator
Usage
To use the WebSocketHeadersGenerator class in your Node.js code, you can follow these steps:
- Require the package in your code:
const WebSocketHeadersGenerator = require('websocket-headers-generator');
- Create an instance of the class, passing in a configuration object with desired options:
const headersGenerator = new WebSocketHeadersGenerator({
origin: 'https://example.com',
host: 'example.com',
headers: {
'Authorization': 'Bearer xxxxxxxxxx',
'Custom-Header': 'custom-value'
},
subprotocol: 'my-custom-subprotocol',
extensions: 'my-custom-extension'
});
- Call the
getHeaders
method on the instance to get the generated headers:
const headers = headersGenerator.getHeaders();
- Use the headers in your WebSocket communication:
const socket = new WebSocket('wss://example.com', headers);
Customization
You can customize the configuration options as needed to generate headers that meet your requirements. The available options are:
origin
: the origin to use in the headers (default:'https://localhost'
)host
: the host to use in the headers (default:'localhost'
)headers
: an object containing additional headers to include in the headers (default:{}
)subprotocol
: the subprotocol to use in the headers (default:undefined
)extensions
: the extensions to use in the headers (default:undefined
)
You can also customize the values for the User-Agent
, Sec-WebSocket-Key
, Sec-WebSocket-Version
, Upgrade
, Connection
, Accept-Encoding
, and Accept-Language
headers by editing the constants in the source code.
Contributing
If you find a bug or have a feature request, please open an issue on GitHub. Pull requests are welcome!
License
This project is licensed under the MIT License. See the LICENSE
file for details.