// test.js
const fs = require('fs')
const WebSocket = require('ws')
url = 'wss://apiserver.com:6443/api/v1/namespaces/default/pods/test-bvt-container/exec?command=ls&container=test-bvt-container-lvcsuv1v-eu95&stderr=true&stdout=true'
sock = new WebSocket(url, 'channel.k8s.io', {
ca: fs.readFileSync(`${process.env.HOME}/ca.crt`),
cert: fs.readFileSync(`${process.env.HOME}/client.crt`),
key: fs.readFileSync(`${process.env.HOME}/client.key`)
})
// 处理连接升级事件
sock.on('upgrade', (response) => {
console.log('HTTP Response Code:', response.statusCode);
console.log('HTTP Response Headers:', response.headers);
// 监听后续的消息事件来接收服务器的返回内容
response.on('data', (chunk) => {
console.log('Received data from server:', chunk.toString());
});
response.on('end', () => {
console.log('No more data from server');
});
});
sock.on('open', () => console.log('open'))
sock.on('message', (x) => console.log('message', JSON.stringify(x.toString())))
sock.on('close', () => console.log('close'))
sock.on('error', (x) => console.log('on error', x))
运行之前需要
npm install fs ws
node test.js