zoukankan      html  css  js  c++  java
  • 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 
    ");
    }).listen(8888);
    
    let wss = new WebSocketServer({ server: server });
    
    wss.on(
        "connection",
        connection => {
            console.log("has user to connected");
        }
    );
    

    4. 相关问题

    运行wss的服务器必须是SSL证书域名解析到的服务器。否则会出现错误,当本地测试时可以使用ws协议。

  • 相关阅读:
    CSS处理小技巧
    React 脚手架构建
    Tomcat8学习
    javaScript(ES5中的类,原型,原型对象和函数对象的关系)
    保留两位小数(逢5进位,精度不会丢失)
    获取过去12个月
    mybatis 踩坑记录
    动态代理--jdk和cglib
    lambda表达式
    mybatis的mapper映射配置文件详解
  • 原文地址:https://www.cnblogs.com/scarecrowlxb/p/8836060.html
Copyright © 2011-2022 走看看