Websocket SSL connection

匿名 (未验证) 提交于 2019-12-03 01:23:02

问题:

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.

回答1:

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 }); 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!