UNPKG

nsyslog

Version:

Modular new generation log agent. Reads, transform, aggregate, correlate and send logs from sources to destinations

87 lines (74 loc) 2.32 kB
## WebSocket Input The WebSocket Input creates a WebSocket server to receive messages from clients. It supports both plain and secure WebSocket (TLS) connections. Messages can be processed in raw or JSON format. ## Examples ### Example 1: Plain WebSocket server on port 8080 ```json "inputs": { "ws": { "type": "ws", "config": { "url": "ws://127.0.0.1:8080", "format": "raw" } } } ``` ### Example 2: Secure WebSocket server with TLS ```json "inputs": { "ws": { "type": "ws", "config": { "url": "wss://127.0.0.1:3000", "format": "json", "tls": { "key": "server.key", "cert": "server.crt" } } } } ``` ### Example 3: WebSocket server with custom TLS options ```json "inputs": { "ws": { "type": "ws", "config": { "url": "wss://0.0.0.0:8443", "format": "json", "tls": { "key": "custom.key", "cert": "custom.crt", "ca": ["ca1.crt", "ca2.crt"] } } } } ``` ## Configuration Parameters - **url**: The binding URL for the WebSocket server. Example: `ws://127.0.0.1:8080` or `wss://127.0.0.1:3000`. - **format**: Specifies the message format. - **raw**: The raw content of the message is placed in the `originalMessage` field. - **json**: The message content is parsed as a JSON object and placed in the `originalMessage` field. - **tls**: TLS options for secure WebSocket connections. - **key**: Path to the private key file. - **cert**: Path to the certificate file. - **ca**: Array of paths to certificate authority files (optional). See the [Node.js TLS documentation](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options) for more details. ## Output Each message received from a WebSocket client generates an object with the following schema: ```javascript { id: '<input ID>', type: 'ws', originalMessage: '<raw data or JSON object>' } ``` ### Notes: - If the `format` is set to **json**, the input will attempt to parse the message content as JSON. If parsing fails, a warning will be logged, and the raw message will be returned. - The WebSocket server supports multiple concurrent client connections. - Secure WebSocket (wss) requires valid TLS certificates to establish encrypted connections.