connect( url, params, callback )
注意
存在一个 API 更好、更符合标准的模块。
新的 k6/experimental/websockets API 部分实现了 WebSockets API living standard。
如果可能,我们建议使用新的 API。它使用全局事件循环,以与其他 k6 API 保持一致,并具有更好的性能。
启动到远程主机的 WebSocket 连接。
调用 connect 将阻塞 VU 最终化,直到 WebSocket 连接关闭。与主函数(export default function() { ... }
)持续循环不同,每个 VU 将暂停,侦听异步事件并执行其事件处理程序,直到连接关闭。
以下事件可以关闭连接:
- 远程主机关闭事件。
- Socket.close().
- 基于测试配置或 CLI 命令的 k6 VU 中断。
参数 | 类型 | 描述 |
---|---|---|
url | string | 请求 URL(例如“ws://echo.websocket.org”)。 |
params | object | 包含附加请求参数的 Params 对象。 |
callback | function | WebSocket 连接启动时将调用的回调函数。一个 Socket 对象将传递给该函数,该对象可用于在 WebSocket 连接上发生事件时设置回调等。 |
返回值
类型 | 描述 |
---|---|
Response | HTTP Response 对象。 |
示例
import ws from 'k6/ws';
export default function () {
const url = 'ws://echo.websocket.org';
const resp = ws.connect(url, null, function (socket) {
socket.on('open', function () {
console.log('WebSocket connection established!');
socket.close();
});
});
}