From 735b45b3de54e52e368d9d1d1c1d4eb3abea8a72 Mon Sep 17 00:00:00 2001 From: gjchen Date: Wed, 6 Jan 2021 23:19:55 +0800 Subject: [PATCH] support websocket over tls --- package.json | 3 +++ src/client.js | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 884886e..605de75 100644 --- a/package.json +++ b/package.json @@ -16,5 +16,8 @@ "main": "index.js", "peerDependencies": { "electron": ">=1.8.1" + }, + "dependencies": { + "ws": "^7.4.2" } } diff --git a/src/client.js b/src/client.js index cb2b7b9..0a76e01 100644 --- a/src/client.js +++ b/src/client.js @@ -2,14 +2,23 @@ const net = require("net"); const url = require("url"); +const WebSocket = require("ws"); // Client can read/write messages from a TCP server class Client { // init initializes the Client init(addr) { - let u = url.parse("tcp://" + addr, false, false); - this.socket = new net.Socket(); - this.socket.connect(u.port, u.hostname, function() {}); + if(addr.indexOf('wss://') == 0) { + const ws = new WebSocket(addr, { + origin: addr.replace('wss://', 'https://'), + rejectUnauthorized: false + }); + this.socket = WebSocket.createWebSocketStream(ws); + } else { + let u = url.parse("tcp://" + addr, false, false); + this.socket = new net.Socket(); + this.socket.connect(u.port, u.hostname, function() {}); + } this.socket.on("close", function() { process.exit(); });