|
1 | 1 | "use strict";
|
2 | 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3 |
| - function adopt (value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
| 3 | + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
4 | 4 | return new (P || (P = Promise))(function (resolve, reject) {
|
5 |
| - function fulfilled (value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
6 |
| - function rejected (value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
7 |
| - function step (result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
| 5 | + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
| 6 | + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
| 7 | + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
8 | 8 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9 | 9 | });
|
10 | 10 | };
|
11 | 11 | var __generator = (this && this.__generator) || function (thisArg, body) {
|
12 |
| - var _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
13 |
| - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; |
14 |
| - function verb (n) { return function (v) { return step([n, v]); }; } |
15 |
| - function step (op) { |
| 12 | + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
| 13 | + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; |
| 14 | + function verb(n) { return function (v) { return step([n, v]); }; } |
| 15 | + function step(op) { |
16 | 16 | if (f) throw new TypeError("Generator is already executing.");
|
17 | 17 | while (_) try {
|
18 | 18 | if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
@@ -46,15 +46,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
46 | 46 | var socketIo = require("socket.io-client");
|
47 | 47 | var socketIoStream = require("socket.io-stream");
|
48 | 48 | var net_1 = require("net");
|
49 |
| -var wshub_bipipe_1 = require("../wshub-bipipe"); |
50 |
| -var wshub_proxy_1 = require("../wshub-proxy"); |
51 |
| -var wshub_types_1 = require("../wshub-types"); |
52 |
| -function normalizeListenArgs (portOrPath) { |
| 49 | +var wshub_bipipe_1 = require("@tencent/wshub-bipipe"); |
| 50 | +var wshub_proxy_1 = require("@tencent/wshub-proxy"); |
| 51 | +var wshub_types_1 = require("@tencent/wshub-types"); |
| 52 | +function normalizeListenArgs(portOrPath) { |
53 | 53 | var port = Number(portOrPath);
|
54 | 54 | return port >= 0 ? [port, '127.0.0.1'] : [portOrPath];
|
55 | 55 | }
|
56 | 56 | var Client = /** @class */ (function () {
|
57 |
| - function Client (socket, streamSocket, logger) { |
| 57 | + function Client(socket, streamSocket, logger) { |
58 | 58 | this.socket = socket;
|
59 | 59 | this.streamSocket = streamSocket;
|
60 | 60 | this.logger = logger;
|
@@ -101,13 +101,14 @@ var Client = /** @class */ (function () {
|
101 | 101 | local.unref();
|
102 | 102 | sendStream(local, ":" + clientPort + " -> :" + targetName);
|
103 | 103 | });
|
| 104 | + this.socket.on('disconnect', function () { return tcpServer.close(); }); |
104 | 105 | tcpServer.unref();
|
105 | 106 | tcpServer.on('error', function (e) { return _this.logger.error("tcp server error " + e); });
|
106 | 107 | return [2 /*return*/, new Promise(function (resolve) {
|
107 |
| - tcpServer.listen.apply(tcpServer, __spreadArrays(normalizeListenArgs(clientPort), [function () { |
108 |
| - resolve(tcpServer.address()); |
109 |
| - }])); |
110 |
| - })]; |
| 108 | + tcpServer.listen.apply(tcpServer, __spreadArrays(normalizeListenArgs(clientPort), [function () { |
| 109 | + resolve(tcpServer.address()); |
| 110 | + }])); |
| 111 | + })]; |
111 | 112 | }
|
112 | 113 | });
|
113 | 114 | });
|
@@ -137,33 +138,33 @@ var Client = /** @class */ (function () {
|
137 | 138 | };
|
138 | 139 | return Client;
|
139 | 140 | }());
|
140 |
| -function connect (options) { |
| 141 | +function connect(options) { |
141 | 142 | var url = options.url, token = options.token, logger = options.logger, _a = options.timeout, timeout = _a === void 0 ? -1 : _a;
|
142 | 143 | var agent = wshub_proxy_1.default();
|
143 | 144 | var socket = socketIo.connect(url, { query: { token: token }, agent: agent });
|
144 | 145 | var streamSocket = socketIoStream(socket);
|
145 | 146 | streamSocket
|
146 | 147 | .on('forward', function (remote, clientPort, serverPort) {
|
147 |
| - var streamName = ":" + clientPort + " <- :" + serverPort; |
148 |
| - var target = net_1.createConnection(clientPort).unref(); |
149 |
| - target |
150 |
| - .once('connect', function () { |
151 |
| - logger.verbose(streamName + " connected"); |
152 |
| - wshub_bipipe_1.default(remote, target, function () { |
153 |
| - logger.verbose(streamName + " closed"); |
154 |
| - }); |
155 |
| - }) |
156 |
| - .on('error', function (err) { |
157 |
| - logger.error(streamName + " error '" + err + "'"); |
158 |
| - remote.end(); |
159 |
| - }); |
| 148 | + var streamName = ":" + clientPort + " <- :" + serverPort; |
| 149 | + var target = net_1.createConnection(clientPort).unref(); |
| 150 | + target |
| 151 | + .once('connect', function () { |
| 152 | + logger.verbose(streamName + " connected"); |
| 153 | + wshub_bipipe_1.default(remote, target, function () { |
| 154 | + logger.verbose(streamName + " closed"); |
| 155 | + }); |
160 | 156 | })
|
| 157 | + .on('error', function (err) { |
| 158 | + logger.error(streamName + " error '" + err + "'"); |
| 159 | + remote.end(); |
| 160 | + }); |
| 161 | + }) |
161 | 162 | .on('error', function () { return socket.disconnect(); });
|
162 | 163 | socket
|
163 | 164 | .on('disconnect', function (reason) {
|
164 |
| - logger.info("disconnected for " + reason); |
165 |
| - socket.disconnect(); |
166 |
| - }); |
| 165 | + logger.info("disconnected for " + reason); |
| 166 | + socket.disconnect(); |
| 167 | + }); |
167 | 168 | return new Promise(function (resolve, reject0) {
|
168 | 169 | var reject = function () {
|
169 | 170 | var args = [];
|
|
0 commit comments