node搭建本地https和wss服务(SSL证书安全)

news/2025/2/12 19:42:49/

node 后台 app.js配置

const express = require('express') //加载express资源
const bodyParser=require("body-parser")//一个Express中间件,用于解析HTTP请求体,获得请求的数据const app = express() //返回一个express服务器对象
const https = require('https')
const fs = require('fs')
const path = require('path');
const logger=require("morgan");//日志模块
const favicon=require("serve-favicon") //用于设置和提供 favicons(网页标签图标)。
const WebSocket = require('ws')//导入ajaxRouter这个路由
const route=require("./routes/backmtage/ajaxRouter")
const route1=require("./routes/appoet/ajaxRouter");// 日志模块放在最上方
app.use(logger("dev"))//调用日志,配置为dev(开发)模式// 使用bodyParser应该在路由前
// extended:false:表示使用系统模块query string来处理数据
// extended:true 表示使用第三方模块qs来处理
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());//使用路由,放在静态资源路径前面
app.use(route)
app.use(route1)//设置静态资源路径
//__dirname指向当前文件的根目录
app.use(express.static(__dirname+"/public"))
//设置小图标
app.use(favicon(__dirname+"/public/images/favicon.ico"))//ssl证书
const options = {key:fs.readFileSync(path.join(__dirname,'./ssl/xxxxxx.cn.key')),cert:fs.readFileSync(path.join(__dirname,'./ssl/xxxxxx.cn.pem'))
}//创建https服务器
const httpsServer = https.createServer(options,app,(req,res)=>{res.writeHead(200, { 'Content-Type': 'text/html;charset=utf8' });res.end('This is a https server!\n') 
})httpsServer.listen(8886, () => {// console.log('服务已开启8886');console.log('HTTPS Server is running on: https://xxxx.com:%s', 9999);
})const wss = new WebSocket.Server({server:httpsServer},()=>{console.log('socket start');}
)
//建立连接
wss.on('connection',ws=>{//接收数据ws.on('message',data=>{console.log('received:%s',data);})ws.send('something')
})

服务启动后控制台输出:

 测试:服务器连接

浏览器输入:https:xxxxx:端口 访问成功 

 测试wss   

可以在这个网站websocket/ws/wss在线调试测试工具

发送消息 看服务端 

参考:node搭建本地https和wss服务(SSL证书安全)_node ssl_jixhua的博客-CSDN博客

Node.js网络编程之WebSocket篇_node websocket_夜已如歌_ok的博客-CSDN博客


http://www.ppmy.cn/news/744330.html

相关文章

对于TIS,TRP的天线有源测试参数分析

TRP,Total Radiated Power,全向辐射功率; TIS,Total Isotropic Sensitivity,全向(辐射)灵敏度; 通过对整个辐射球面的发射功率进行积分并取平均得到,它反映手机整机的发射…

java(五)-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类

day05【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】 主要内容 Collection集合的遍历方式: 迭代器。 foreach(增强for循环)JDK 1.8开始的新技术Lambda表达式。 数据结构 是集合的底层,研究数据结构是为了选择使用某种集合。 List接口…

Java基础学习系列--(五)【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】

第一章 Iterator迭代器 1.1 Iterator接口 在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。 想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下…

键盘win键无法使用,win+r不生效、win键没反应、Windows键失灵万能解决方案

win键无效,键盘Win组合键突然不不能用如何解决? winE、winL不生效为什么我的键盘win组合键没法用? 电脑键盘win键没反应 ?Win10按徽标键没反应怎么办? windows7、windows10中按键盘win键没反应了 怎么开启&#xff…

【shell】通过EOF实现一个链接执行多条sql

文章目录 一. EOF简介二. 语法三. cat <<EOF 与 cat <<-EOF四. shell执行多条sql 一. EOF简介 在shell脚本中&#xff0c;通常将EOF与 << 结合使用&#xff0c;表示后续的输入作为子命令或子Shell的输入&#xff0c;直到再遇到EOF为止&#xff0c;再返回到主…

Unity ILRuntime热更新(二)

一、启动ILRuntime并加载程序集 public class Lesson02 : MonoBehaviour {private AppDomain _domain;private MemoryStream _dllStream;private MemoryStream _pdbStream;IEnumerator Start(

linux系统编程(全)

linux系统编程 一、文件编程 1、文件的打开及创建 1.1open函数头文件 #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>1.2open函数原型 int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t …

细说IPSec 密钥交换,(数字证书认证、PSK、数字信封)

前文介绍IPSec和IKE已经很清晰了&#xff0c;可以查看一张图认识IPSec&#xff0c;区分IKE SA&#xff08;ISAKMP SA&#xff09;和IPSec SA。 本文主要介绍在IKE动态协商方式建立IPSec隧道时的基本工作原理。 一、IKE动态协商综述 手工方式建立SA存在配置复杂、不支持发起…