Websocket SSL connection

39,047

The https module is rejecting your self-signed cert (as one would hope). You can force it to stop checking by passing a rejectUnauthorized: false option (which WebSocket will pass down to https):

var ws = new WebSocket('wss://localhost:15449/', {
  protocolVersion: 8,
  origin: 'https://localhost:15449',
  rejectUnauthorized: false
});
Share:
39,047
cocoa
Author by

cocoa

Updated on June 19, 2020

Comments

  • cocoa
    cocoa almost 4 years

    I am trying to test a secure websocket but I'm having trouble. Here is my test:

    var WebSocket = require('ws');
    
    describe('testing Web Socket', function() {
      it('should do stuff', function(done) {
        var ws = new WebSocket('wss://localhost:15449/', {
          protocolVersion: 8,
          origin: 'https://localhost:15449'
        });
        ws.on('open', function() {
          console.log('open!!!');
          done();
        });
        console.log(ws);
      });
    });
    

    Here's the log of "ws" after it's created:

    { domain: null,
      _events: { open: [Function] },
      _maxListeners: undefined,
      _socket: null,
      _ultron: null,
      _closeReceived: false,
      bytesReceived: 0,
      readyState: 0,
      supports: { binary: true },
      extensions: {},
      _isServer: false,
      url: 'wss://localhost:15449/',
      protocolVersion: 8 }
    

    I don't get a log back from open. I am running the project locally and when I use the Chrome Advanced Rest Client tool I am able to connect just fine.

    Am I missing something? Please help.

    Edit: I added ws.on('error') and it logged out { [Error: self signed certificate] code: 'DEPTH_ZERO_SELF_SIGNED_CERT' } I've also tried following this code but get the same error.

  • Zeba
    Zeba over 7 years
    I tried using this solution for similar issue I am getting with my Cordova Android app. But this gives me an error as ""Uncaught SyntaxError: Failed to construct 'WebSocket': The subprotocol '[object Object]' is invalid."