Nodejs搭建wss服务器教程


Posted in NodeJs onMay 24, 2017

本文为大家分享了Nodejs搭建wss服务器的教程,供大家参考,具体内容如下

首先使用OpenSSL创建自签名证书:

#生成私钥key文件
openssl genrsa 1024 > /path/to/private.pem
//
#通过私钥文件生成CSR证书签名
openssl req -new -key /path/to/private.pem -out csr.pem
//
#通过私钥文件和CSR证书签名生成证书文件
openssl x509 -req -days 365 -in csr.pem -signkey /path/to/private.pem -out /path/to/file.crt

使用ws模块创建wss服务器:

var https=require('https');
var ws=require('ws');
var fs=require('fs');
var keypath=process.cwd()+'/server.key';//我把秘钥文件放在运行命令的目录下测试
var certpath=process.cwd()+'/server.crt';//console.log(keypath);
//console.log(certpath);
 
var options = {
 key: fs.readFileSync(keypath),
 cert: fs.readFileSync(certpath),
 passphrase:'1234'//如果秘钥文件有密码的话,用这个属性设置密码
};
 
var server=https.createServer(options, function (req, res) {//要是单纯的https连接的话就会返回这个东西
 res.writeHead(403);//403即可
 res.end("This is a WebSockets server!\n");
}).listen(15449);
 
 
var wss = new ws.Server( { server: server } );//把创建好的https服务器丢进websocket的创建函数里,ws会用这个服务器来创建wss服务
//同样,如果丢进去的是个http服务的话那么创建出来的还是无加密的ws服务
wss.on( 'connection', function ( wsConnect ) {
 wsConnect.on( 'message', function ( message ) {
  console.log( message );
 });
});

客户端链接:

var ws = new WebSocket('wss://localhost:15449/', {
 protocolVersion: 8,
 origin: 'https://localhost:15449',
 rejectUnauthorized: false //重要,自签名证书只能这样设了。CA颁发的受信任证书就不需要了
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs下打包模块archiver详解
Dec 03 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 #NodeJs
深入理解nodejs中Express的中间件
May 19 #NodeJs
nodejs批量下载图片的实现方法
May 19 #NodeJs
nodejs制作爬虫实现批量下载图片
May 19 #NodeJs
详解Windows下安装Nodejs步骤
May 18 #NodeJs
nodejs+websocket实时聊天系统改进版
May 18 #NodeJs
nodejs6下使用koa2框架实例
May 18 #NodeJs
You might like
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
js 实现watch监听数据变化的代码
2019/10/13 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
python redis 删除key脚本的实例
2019/02/19 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
简单了解django缓存方式及配置
2019/07/19 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
Python基于locals返回作用域字典
2020/10/17 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
德国足球商店:OUTFITTER
2019/05/06 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
战略性融资合作协议书范本
2014/10/17 职场文书
岁月神偷观后感
2015/06/11 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python