菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/experimentalbreadcrumb arrow websocketsbreadcrumb arrow WebSocketbreadcrumb arrow WebSocket.addEventListener(event, handler)
开源

WebSocket.addEventListener(event, handler)

为 WebSocket 连接上的各种事件设置处理函数。您可以为同一事件定义多个处理程序。

参数类型描述
eventstring要定义处理程序的事件名称。
handlerfunction事件发生时要调用的函数。
事件名称描述
open连接建立时触发。
message从服务器接收到消息时触发。
ping从服务器接收到 ping 时触发。客户端会自动回发一个 pong
pong从服务器接收到 pong 时触发。
close客户端调用 WebSocket.close() 关闭连接时,或服务器发送代码状态为 1000 (normal closure) 的 close 事件时触发。
error发生错误时触发。

示例

一个 k6 脚本,演示如何为 WebSocket message 连接事件添加多个事件监听器。

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

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

  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();
  });
}

上述示例使用了 WebSocket 回显服务器,您可以使用以下命令运行它

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