You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中使用ws模块实现安全WebSocket(WSS)客户端

使用ws模块创建Node.js安全WebSocket(WSS)客户端

基础WSS客户端创建

ws模块原生支持WSS协议,创建基础的安全WebSocket客户端只需传入wss://开头的服务器地址,模块会自动处理TLS握手流程:

const WebSocket = require('ws');

// 初始化WSS客户端
const ws = new WebSocket('wss://your-secure-websocket-server-url');

// 监听连接成功事件
ws.on('open', () => {
  console.log('WSS连接已建立');
  ws.send('安全连接测试消息');
});

// 监听服务器消息
ws.on('message', (data) => {
  console.log('收到服务器消息:', data.toString());
});

// 监听连接关闭事件
ws.on('close', () => {
  console.log('WSS连接已关闭');
});

// 监听错误事件
ws.on('error', (err) => {
  console.error('WSS连接出错:', err);
});

如果服务器使用自签名证书(仅测试环境使用),可临时关闭证书验证(生产环境禁止此操作):

const ws = new WebSocket('wss://your-self-signed-server', {
  rejectUnauthorized: false
});

发送客户端证书到服务器

ws模块支持通过配置项传递TLS相关参数,包括客户端证书,可满足服务器要求客户端提供证书进行身份验证的场景。准备好客户端证书(.pem格式)和对应私钥文件后,在初始化客户端时传入即可:

const WebSocket = require('ws');
const fs = require('fs');

// 配置TLS参数
const wssOptions = {
  // 客户端证书文件
  cert: fs.readFileSync('/path/to/client-certificate.pem'),
  // 客户端私钥文件
  key: fs.readFileSync('/path/to/client-private-key.pem'),
  // 若服务器使用自定义CA证书,需指定信任的CA
  ca: fs.readFileSync('/path/to/ca-certificate.pem')
};

// 初始化带证书的WSS客户端
const ws = new WebSocket('wss://server-requiring-client-cert', wssOptions);

ws.on('open', () => {
  console.log('带客户端证书的WSS连接已成功建立');
});

ws.on('error', (err) => {
  console.error('证书验证或连接失败:', err);
});

这些配置参数与Node.js原生tls模块选项完全兼容,ws会将其传递给底层TLS套接字,确保客户端证书被正确发送至服务器完成身份验证。


内容的提问来源于stack exchange,提问作者sumit_suthar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:05:20