Skip to content

Commit

Permalink
Update k6/experimental/websockets for v0.54.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mstoykov committed Sep 17, 2024
1 parent b869090 commit 1f74a07
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'websockets'
description: "k6 websockets experimental API"
description: 'k6 websockets experimental API'
weight: 05
---

Expand All @@ -16,31 +16,31 @@ A global event loop lets a single VU have multiple concurrent connections, which
The `WebSocket API` is not fully implemented, and we're working on it, but we believe it's usable for most users. So whether you're writing a new WebSocket test, or currently using the `k6/ws` module, we invite you to give it a try, and report any issues in the project's [issue tracker](https://github.com/grafana/xk6-websockets/). Our midterm goal is to make this module part of k6 core, and long-term to replace the [`k6/ws`](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-ws) module.

| Class/Method | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Params](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/params) | Used for setting various WebSocket connection parameters such as headers, cookie jar, compression, etc. |
| [WebSocket(url, protocols, params)](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket) | Constructs a new WebSocket connection. |
| [WebSocket.close()](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-close) | Close the WebSocket connection. |
| [WebSocket.ping()](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-ping) | Send a ping. |
| [WebSocket.send(data)](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-send) | Send string data. |
| [WebSocket.send(data)](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-send) | Send data. |
| [WebSocket.addEventListener(event, handler)](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-addeventlistener) | Add an event listener on the connection for specific event. |
| [Blob](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/blob) | Interface that represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a [ReadableStream](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/streams/readablestream). |

A WebSocket instance also has the following properties:

<!-- vale off -->

| Class/Property | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| WebSocket.readyState | The current state of the connection. Could be one of [the four states](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState). |
| WebSocket.url | The URL of the connection as resolved by the constructor. |
| WebSocket.bufferedAmount | The number of bytes of data that have been queued using calls to `send()` but not yet transmitted to the network. |
| WebSocket.binaryType | _Required_. The [`binaryType`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType) controls the type of binary data being received over the WebSocket connection. Use `"blob"` to receive it as `Blob`, or `"arraybuffer"` to receive it as `ArrayBuffer`. The default value is empty. That will change to default to `"blob"` in the future. If you want to keep the same behavior, we recommend setting it to `"arraybuffer"`. |
| [WebSocket.onmessage](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onmessage) | A handler for `message` events. |
| [WebSocket.onerror](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onerror) | A handler for `error` events. |
| [WebSocket.onopen](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onopen) | A handler for `open` events. |
| [WebSocket.onclose](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onclose) | A handler for `close` events. |
| [WebSocket.onping](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onping) | A handler for `ping` events. |
| [WebSocket.onpong](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onpong) | A handler for `pong` events. |
| Class/Property | Description |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| WebSocket.readyState | The current state of the connection. Could be one of [the four states](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState). |
| WebSocket.url | The URL of the connection as resolved by the constructor. |
| WebSocket.bufferedAmount | The number of bytes of data that have been queued using calls to `send()` but not yet transmitted to the network. |
| WebSocket.binaryType | The [`binaryType`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType) controls the type of binary data being received over the WebSocket connection. Use `"blob"` to receive it as `Blob`, or `"arraybuffer"` to receive it as `ArrayBuffer`. The default value is `"blob"`. |
| [WebSocket.onmessage](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onmessage) | A handler for `message` events. |
| [WebSocket.onerror](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onerror) | A handler for `error` events. |
| [WebSocket.onopen](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onopen) | A handler for `open` events. |
| [WebSocket.onclose](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onclose) | A handler for `close` events. |
| [WebSocket.onping](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onping) | A handler for `ping` events. |
| [WebSocket.onpong](https://grafana.com/docs/k6/<K6_VERSION>/javascript-api/k6-experimental/websockets/websocket/websocket-onpong) | A handler for `pong` events. |

<!-- vale on -->

Expand Down Expand Up @@ -75,7 +75,7 @@ export default function () {
function startWSWorker(id) {
// create a new websocket connection
const ws = new WebSocket(`wss://test-api.k6.io/ws/crocochat/${chatRoomName}/`);
ws.binaryType = "arraybuffer";
ws.binaryType = 'arraybuffer';

ws.addEventListener('open', () => {
// change the user name
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: 'WebSocket.send(data)'
description: 'Send a data string through the connection.'
description: 'Send data through the connection.'
weight: 10
---

# WebSocket.send(data)

Send a data string through the connection.
Send data through the connection.
You can use `JSON.stringify` to convert a JSON or JavaScript values to a JSON string.

| Parameter | Type | Description |
| --------- | -------------------- | ----------------- |
| data | string / ArrayBuffer | The data to send. |
| Parameter | Type | Description |
| --------- | --------------------------------------------- | ----------------- |
| data | string / ArrayBuffer / Blob / ArrayBufferView | The data to send. |

### Example

Expand Down

0 comments on commit 1f74a07

Please sign in to comment.