node使用https,webSocket开启wss
1. 前言
看WEBRTC教程时使用到WebSocket来传输信令,node端使用了ws库来实现,但在浏览器端http无法获取本地媒体,必须使用https,使用https后webSocket 不能使用ws协议了,必须使用wss协议。
2. 证书选择
网上看到的教程里使用的SSL证书都是适用于nginx下的两个证书,但我使用时总是碰到问题,webSocket连接时都发生段错误,所以我使用了不同的证书:适用于IIS的两个证书:youtdomain.pfx keystorePass.txt。
3. 实现代码
// 需安装ws模块 npm install ws
let WebSocketServer = require('ws').Server;
let https = require("https");
let fs = require("fs");
let pfxpath = __dirname + '/test.com.pfx'; //
let passpath = __dirname + '/testkey.txt';
let options = {
pfx: fs.readFileSync(pfxpath),
passphrase: fs.readFileSync(passpath),
};
let server = https.createServer(options, (req, res) => {
res.writeHead(200);
res.end("this is a websocket server \n");
}).listen(8888);
let wss = new WebSocketServer({ server: server });
wss.on(
"connection",
connection => {
console.log("has user to connected");
}
);
4. 相关问题
运行wss的服务器必须是SSL证书域名解析到的服务器。否则会出现错误,当本地测试时可以使用ws协议。
node使用https,webSocket开启wss的更多相关文章
- 前端使用node.js的http-server开启一个本地服务器
前端使用node.js的http-server开启一个本地服务器 在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时 ...
- 基于node.js 的 websocket的移动端H5直播开发
这一篇介绍一下基于node.js 的 websocket的移动端H5直播开发, 下载文章底部的源码,我是用vscode打开, 首先在第一个终端运行 npm run http-server 这个指令是运 ...
- Windows下Node.js+Express+WebSocket 安装配置
Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...
- 小程序开发之搭建WebSocket的WSS环境(Apache+WorkerMan框架+PHP)
最近公司的一个IoT项目用到了小程序的WSS协议环境,现在把整个的搭建开发过程分享给大家. 这里我们用的是WorkerMan框架,服务器是CentOS,Web服务器是Apache,开发语言是PHP. ...
- 使用node.js的http-server开启一个本地服务器
用html写了一个网页,想要在手机上查看适配效果,但是苦于手机上没有直接查看HTML的.想到手机和电脑都在一个局域网内,能不能搭建一个局域网内的网页服务器呢? 1.下载 http-server 显然, ...
- 【Linux】采用nginx反向代理让websocket 支持 wss
背景:玩swoole 服务 使用Nginx反向代理解决wss问题. 即客户端通过wss协议连接 Nginx 然后 Nginx 通过ws协议和server通讯. 也就是说Nginx负责通讯加解密,Ngi ...
- node实现一个WEBSOCKET服务器
早点时候翻译了篇实现一个websocket服务器-理论篇,简单介绍了下理论基础,本来打算放在一起,但是感觉太长了大家可能都看不下去.不过发现如果拆开的话,还是不可避免的要提及理论部分.用到的地方就简要 ...
- Node.js HTTPS
稳定性: 3 - 稳定 HTTPS 是基于 TLS/SSL 的 HTTP 协议.在 Node 里作为单独的模块来实现. 类: https.Server 这是 tls.Server 的子类,并且和 ht ...
- http强转https websocket
需要在httpd.conf文件最后添加即可: <Directory /> Options FollowSymLinks AllowOverride All RewriteEngine on ...
随机推荐
- storm集群快速搭建
sudo mkdir /export/serverssudo chmod -R 777 /exportmkdir /export/servers tar -zxvf apache-storm-1.0. ...
- 03process对象的其他方法属性
一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下, ...
- mysqldump备份以tmp_开头的表
需要备份warehouse这个DB下所有以tmp_开头的表名.直接说结论: mysqldump .sql.gz 其中:-Bse是为了将查询中的-----------------等分隔符给屏蔽了. gz ...
- HTML5新增的表单元素有哪些?
表单控:color , calendar , date , datetime, datetime-local, time, mouth , week, email, url , search ...
- 5.EM
- 牛客挑战赛30-T3 小G砍树
link 题目大意: n个节点的带标号无根树.每次选择一个度数为1的节点并将它从树上移除.问总共有多少种不同的方式能将这棵树删到只剩 1 个点.两种方式不同当且仅当至少有一步被删除的节点不同. 题解: ...
- SDUT OJ 数据结构实验之二叉树八:(中序后序)求二叉树的深度
数据结构实验之二叉树八:(中序后序)求二叉树的深度 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Probl ...
- 关于Execel 2007 连接到 hive odbc
官方给出的都是 2010 或2012版的连接方案,看起来与2007有些不同,但我相信这些功能都是通用的. 下载 odbc hive 驱动.http://hortonworks.com/products ...
- [CQOI2007]涂色 BZOJ 1260 区间dp
题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个 ...
- Python学习【第五篇】:面向对象及相关
面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 c ...