Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Documentationbreadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/experimentalbreadcrumb arrow websocketsbreadcrumb arrow WebSocketbreadcrumb arrow WebSocket.addEventListener(event, handler)
Open source

WebSocket.addEventListener(event, handler)

Set up handler functions for various events on the WebSocket connection. You can define multiple handlers for the same event.

ParameterTypeDescription
eventstringThe event name to define a handler for.
handlerfunctionThe function to call when the event happens.
Event nameDescription
openEmitted when the connection is established.
messageEmitted when a message is received from the server.
pingEmitted when a ping is received from the server. The client will automatically send back a pong.
pongEmitted when a pong is received from the server.
closeEmitted when the connection is closed by the client WebSocket.close() or when the server sends the close event with code status 1000 (normal closure).
errorEmitted when an error occurs.

Example

A k6 script that demonstrates how to add multiple event listeners for the WebSocket message connection event.

JavaScript
import { WebSocket } from 'k6/experimental/websockets';

export default function () {
  const ws = new WebSocket('ws://localhost:10000');

  ws.onopen = () => {
    console.log('connected');
    ws.send(Date.now().toString());
  };

  ws.onmessage = () => {
    console.log('onmessage event handler!');
  };

  // Multiple event handlers on the same event
  ws.addEventListener('message', () => {
    console.log('addEventListener event handler!');

    ws.close();
  });
}

The preceding example uses a WebSocket echo server, which you can run with the following command:

bash
$ docker run --detach --rm --name ws-echo-server -p 10000:8080 jmalloc/echo-server