当前位置: 首页 > 后端技术 > Node.js

nodejs配置微信小程序本地服务器(二):使用ws模块创建基于ssl证书的WebSocket服务器

时间:2023-04-03 11:08:33 Node.js

使用ws模块创建基于ssl证书的WebSocket服务器一、准备工作首先找个文件夹创建今天的代码文件:wss.js,将上一篇文章生成的服务器私钥ssl.key和证书ssl.crt放在同一个目录下。由于这里需要用到node.js的ws模块,所以通过npm命令下载。这里需要注意的是,npm安装模块分为全局安装和本地安装。为了不污染全局环境,ws模块和server.js安装在同一个目录下。在wss.js目录下打开cmd,运行如下代码下载ws:npminstallws如果安装成功,会在目录下看到一个node_modules文件夹,里面有ws文件夹,说明ws模块已经安装成功地。2.服务器代码编写//wss.jsconstfs=require('fs');//一些配置信息constcfg={port:8888,ssl_key:'ssl.key',ssl_cert:'ssl.crt'};consthttpServ=require('https');constWebSocketServer=require('ws').Server;//引用服务器类//创建请求请求监听器constprocessRequest=(req,res)=>{res.writeHead(200);res.end('太棒了,我的WebSockets!\n');};constapp=httpServ.createServer({//将密钥和证书参数传递给服务器密钥:fs.readFileSync(cfg.ssl_key),cert:fs.readFileSync(cfg.ssl_cert)},processRequest).listen(cfg.port);//实例化WebSocketserverconstwss=newWebSocketServer({server:app});//如果有WebSocket请求访问,则wssobject可以响应连接事件来处理wss.on('connection',(wsConnect)=>{console.log('服务器启动,监听~');wsConnect.on('message',(message)=>{console.log(`服务器收到:${message}`);wsConnect.send(`服务器回复:${message}`,(err)=>{if(err){console.log(`服务器错误:${错误}`);}});});});提示:这里的${}是ES6标准中的占位符字符,外层不是普通的单引号,而是反引号,也就是左上角ESC键下面的那个。至此服务器端代码已经写完,具体功能不再赘述。评论应该是可以理解的。3.运行服务器代码并验证连接在wss.js目录下运行cmd,运行如下命令执行wss.js:nodewss.js此时服务器正在等待连接,打开url中的浏览器地址:https://127.0.0.1/8888,如果在浏览器中看到:Great,myWebSockets!,说明操作成功。接下来在支持javascript的浏览器控制台依次运行以下客户端代码进行验证,检查服务端返回的数据是否正确。我使用的是QQ浏览器,在https://127.0.0.1/8888中按F12打开开发者窗口,选择控制台选项卡,依次输入以下代码:constsocket=newWebSocket('wss://127.0.0.1:8888/');socket.onmessage=function(e){console.log('server:'+e.data);};socket.send('你好,服务器');!!!注意:以上代码需要一一运行。运行上一个没有错误后,再运行下一个。你会在Console中看到这些:你也会在cmd中得到相应的反馈:欢迎加入QQ群交流:146202960或点击链接加入群聊:https://jq.qq.com/?_wv=1027&k...