1.从腾讯云申请SSL证书,下载解压,得到如下文件:
2.nodejs代码:
1 // wss.js 2 3 const fs = require(\'fs\'); 4 5 // 一些配置信息 6 const cfg = { 7 port: 8888, 8 ssl_key: \'ssl.key\', //这里填Apache中的 3_[域名].key 文件 9 ssl_cert: \'ssl.crt\', //这里填Apache中的 2_[域名].crt 文件 10 ssl_ca:\'root_bundle.crt\' //这里填Apache中的 1_root_bundle.crt文件 11 }; 12 13 const httpServ = require(\'https\'); 14 const WebSocketServer = require(\'ws\').Server; // 引用Server类 15 16 // 创建request请求监听器 17 const processRequest = (req, res) => { 18 res.writeHead(200); 19 res.end(\'厉害了,我的WebSockets!\n\'); 20 }; 21 22 const app = httpServ.createServer({ 23 // 向server传递key和cert参数 24 key: fs.readFileSync(cfg.ssl_key), 25 cert: fs.readFileSync(cfg.ssl_cert), 26 ca: fs.readFileSync(cfg.ssl_ca) 27 }, processRequest).listen(cfg.port); 28 29 // 实例化WebSocket服务器 30 const wss = new WebSocketServer({ 31 server: app 32 }); 33 // 如果有WebSocket请求接入,wss对象可以响应connection事件来处理 34 wss.on(\'connection\', (wsConnect) => { 35 console.log(\'服务器已启动,监听中~\'); 36 wsConnect.on(\'message\', (message) => { 37 console.log(`服务器接收到:${message}`); 38 wsConnect.send(`服务器回复: ${message}`, (err) => { 39 if (err) { 40 console.log(`服务器错误:${err}`); 41 } 42 }); 43 }); 44 });
参考:
https://blog.csdn.net/u013052238/article/details/81234898
https://blog.csdn.net/chaoshengze/article/details/78406039?locationNum=5&fps=1