WebSocket.addEventListener(event, handler)
为 WebSocket 连接上的各种事件设置处理函数。您可以为同一事件定义多个处理程序。
参数 | 类型 | 描述 |
---|---|---|
event | string | 要定义处理程序的事件名称。 |
handler | function | 事件发生时要调用的函数。 |
事件名称 | 描述 |
---|---|
open | 连接建立时触发。 |
message | 从服务器接收到消息时触发。 |
ping | 从服务器接收到 ping 时触发。客户端会自动回发一个 pong 。 |
pong | 从服务器接收到 pong 时触发。 |
close | 客户端调用 WebSocket.close() 关闭连接时,或服务器发送代码状态为 1000 (normal closure) 的 close 事件时触发。 |
error | 发生错误时触发。 |
示例
一个 k6 脚本,演示如何为 WebSocket message
连接事件添加多个事件监听器。
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 回显服务器,您可以使用以下命令运行它
docker run --detach --rm --name ws-echo-server -p 10000:8080 jmalloc/echo-server