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协议。

最新文章

  1. 【Android】HorizontalScrollView内子控件横向拖拽
  2. zz 游戏程序员的学习之路(中文版)
  3. codeforces 710E E. Generate a String(dp)
  4. ios-遍历和排序
  5. Myeclipse的快捷键大全
  6. validate()的配置项
  7. Python一日一练05----怒刷点击量
  8. Studio-Class Diagram
  9. Android5.1 - 通讯录建立群组
  10. 你可能不知道的css-doodle
  11. A tuple is defined as a function
  12. jQuery Gantt Edit:(一)参数以及方法说明
  13. Android 开发版本统一
  14. 洛谷 P4707 【重返现世】
  15. Linux命令中,$、#、@、0、1、2、*、?的作用
  16. flume杀掉重启
  17. 逃离迷宫(BFS)题解
  18. 正则表达式”\d+\.?\d*”在匹配下列字符串时结果是失败的是?
  19. 如何快速解决MySQL 1032 主从错误
  20. C++入门(2)

热门文章

  1. h2数据库 安装部署
  2. 日期 Date()
  3. luoguP3648 [APIO2014]序列分割
  4. crm录入成绩modelformset组件
  5. MySQL索引的索引长度问题
  6. DOS远程桌面连接命令[佚名]
  7. DATE类型数据在MySql中减一天的问题
  8. VUE学习(三)语法
  9. angluarJs与后台交互get
  10. (找到最大的整数k使得n! % s^k ==0) (求n!在b进制下末尾0的个数) (区间满足个数)