WebSocket Server
WebSocket Server is the server-side counterpart of WebSocket Client. It is used to accept incoming WebSocket connections, turning IO Ninja into a configurable WebSocket server-side terminal.
Basic Setup
In IO Ninja, click the “New Session” dropdown and select “WebSocket Server”.

Select your network adapter from the dropdown and enter a port.

Press the “Start Listening” button and wait for incoming connections.

Use the “Transmit” pane to send any packet to connected WebSocket clients.

Adjust settings as needed via the “Settings” button (see “Settings” section below for details).
Settings

Setting |
Description |
Default |
---|---|---|
Extra headers |
Specify extra headers for the WebSocket handshake. |
|
Transmit mode |
Specify the WebSocket transmission mode. Transmission modes determine how the WebSocket client interprets and sends messages. See available options. |
Auto |
Close mode |
Specify the WebSocket close mode. Close modes define how a connection is terminated. See available options. |
Graceful |
Close timeout |
Specify how long until a WebSocket timeout occurs. |
3000 (ms) |
Adapter |
Local network adapter to bind to. Pick one from the list of installed network adapters (or bind to all installed |
Auto |
Local port |
Local port to bind to. Setting this to |
8080 |
Reuse address |
Allow multiple sockets to share the same local address. Maps to the |
False |
TCP Nagle algorithm |
Delay transmission to reduce the number of small TCP packets. Maps to the |
False |
TCP reset |
Drop TCP connections abruptly with a TCP RST packet. Maps to the |
False |
TCP keep-alives |
Detect connection loss with TCP keep-alive probes. Maps to the |
False |
Security level |
Specify OpenSSL security level. Read more about OpenSSL security levels here. |
1 |
Cipher suite |
Select an OpenSSL cipher mode. OpenSSL ciphers refer to the cryptographic algorithms supported by the OpenSSL library for securing data in transit, typically over SSL/TLS connections. Read more about OpenSSL ciphers here. See available options. |
ALL |
Use certificate |
Whether or not to use a certificate for the SSL connection. |
False |
Certificate |
Specify the file path of the certificate. |
|
Private key |
Specify the private key for the certificate. |
|
Verify certificates |
Whether or not to verify the certificate of the target SSL server. |
False |
CA certificate |
Specify the file path of the CA certificate to be used for verification. |
|
CA directory |
Specify a directory of CA certificates to be used for verification. |
|
Verify depth |
Specify the maximum certificate certificate chain length. A certificate chain is a sequence of certificates—starting with the SSL/TLS certificate and followed by one or more Certificate Authority (CA) certificates—that allows the recipient to verify the authenticity and trustworthiness of both the sender and the issuing CAs. |
10 |
Read block size (B) |
The size of each individual read block submitted to the underlying transport. |
4KB |
RX buffer size (B) |
The full size of the incoming data (RX) buffer. Affects read throughput. |
16KB |
TX buffer size (B) |
The full size of the outbound data (TX) buffer. Affects write throughput. |
16KB |
Keep read block size |
Don’t merge read blocks in RX buffer. Incoming data blocks coming in quick succession can be merged together so that IO Ninja writes them to log as a whole. When this option is set to |
False |
Keep write block size |
Don’t merge write blocks in TX buffer. Outbound data blocks sent in quick succession can be merged together before submission to the underlying transport. When this option is set to |
False |
RX buffer full notifications |
Toggle warnings in log about the incoming data (RX) buffer getting full. |
False |
Note
All SSL related options only apply when connecting to a secure WebSocket. To make your WebSocket server secure, click the green lock button in the toolbar or enable SSL in “Settings”.
Transmit Mode Options
Setting |
Description |
---|---|
Auto |
The plugin automatically determines whether to send the payload as text or binary based on its content. |
Text |
Forces the plugin to send all outgoing data as text frames. |
Binary |
Forces the plugin to send all outgoing data as binary frames. |
Close Mode Options
Setting |
Description |
---|---|
Graceful |
A graceful close follows the proper WebSocket protocol for connection termination. Both client and server exchange close frames, allowing for a clean shutdown. |
Abrupt |
An abrupt close terminates the WebSocket connection without sending a Close frame. |
Cipher Suite Options
Cipher Suite |
Cipher Strings |
Description |
---|---|---|
Encrypted |
|
All cipher suites are included except for the |
Encrypted & authenticated |
|
Refers to all cipher suites supported by OpenSSL that provide both encryption and authentication. This is achieved by including |
OpenSSL default |
|
Includes all the ciphers from the |
All (including unencrypted) |
|
Uses the |
Read more about OpenSSL ciphers here.